0

移植可能なクラスでこれを行う方法についてのアイデアはありますか? 't'はIsInterfaceまたはIsAbstractを持たないようでも、TypeにIsAssignableFromもありません。アクチベータを使用してポータブルクラスプロジェクトのインターフェイスからインスタンスを取得する

移植可能なクラスライブラリプロジェクト内のインターフェイスからインスタンスをアクティブ化しようとしています。そのため、Xamarinで使用することができます。

私はthis questionから、このコードを試してみましたが、それは多くのものとして動作しないポータブルプロジェクトに存在しない

コードは質問から:

Type[] iLoadTypes = (from t in Assembly.Load("ClassLibrary1").GetExportedTypes() 
       where !t.IsInterface && !t.IsAbstract 
       where typeof(ILoad).IsAssignableFrom(t) 
       select t).ToArray(); 

おかげ

答えて

1

移植可能なクラスライブラリには、AssemblyクラスとTypeクラスのいくつかの更新があります。 ポータブルクラスプロジェクトで必要としていたことを行うために必要なコードは次のとおりです。

Type[] interfaceTypes = (from t in Assembly.Load(new AssemblyName("DependencyInjectionClient")).ExportedTypes 
              where !t.GetTypeInfo().IsInterface && !t.GetTypeInfo().IsAbstract 
              where typeof(T).GetTypeInfo().IsAssignableFrom(t.GetTypeInfo()) 
              select t).ToArray(); 

あなたが必要とする情報はTypeInfoクラスに移動されました。

答えはthis post

に有鉛 this questionthis question から発見されました
関連する問題