あなたは、プラットフォームのフックを使用することができます:あなたのポータブルなライブラリで
:
using System.Collections.Generic;
namespace PCL {
public interface IAppDomain {
IList<IAssembly> GetAssemblies();
}
public interface IAssembly {
string GetName();
}
public class AppDomainWrapper {
public static IAppDomain Instance { get; set; }
}
}
を、あなたは次のように(あなたの携帯用ライブラリに)それらにアクセスすることができます:あなたのプラットフォームでは
AppDomainWrapper.Instance.GetAssemblies();
これを実装する必要があるアプリケーションに依存するアプリケーション:
public class AppDomainWrapperInstance : IAppDomain {
IList<IAssembly> GetAssemblies() {
var result = new List<IAssembly>();
foreach (var assembly in System.AppDomain.CurrentDomain.GetAssemblies()) {
result.Add(new AssemblyWrapper(assembly));
}
return result;
}
}
public class AssemblyWrapper : IAssembly {
private Assembly m_Assembly;
public AssemblyWrapper(Assembly assembly) {
m_Assembly = assembly;
}
public string GetName() {
return m_Assembly.GetName().ToString();
}
}
とブートストラップそれ
あなたはクラスやメソッドがPCLで利用できない場合、移植の代替があること*そう非常に*であるという事実で作業する必要があります
。 AppDomainはSilverlightやWinRTのアプリケーションでは利用できません。あなたは、サポートしたいターゲットについて言及するのを忘れてしまいました。しかし、あなたが望む目標がそれをサポートしていない場合、あなたは働くことができない図書館を持っているならば、明らかにあなたは石から水をぬぐうことはできません。 –
まず、現在のAppDomainのすべてのアセンブリの一覧をPCLから取得する必要があるのはなぜですか? –
詳細情報を提供できますか?私が見てきた使用法から、現在のAppDomainから現在のアセンブリを引き出すことは、特定のアプリケーションのすべてのアセンブリが既に読み込まれていることを前提にしています。 –