2013-12-11 15 views
7

現在、Xamarin.iOSアプリケーションライブラリをPCL(プロファイル78)に変換しようとしています。私はコンパイルされません。このコードを持っている:ここではポータブルクラスライブラリの反映

public static void RegisterAllCommandHandlers(IEnumerable<Assembly> assemblies) { 
      // Get all types that are concrete classes which implement ICommandHandler 
      var commandHandlerOpenGenericType = typeof(ICommandHandler<>); 
      var types = new List<Type>(); 
      foreach (var assembly in assemblies) { 
       types.AddRange(assembly.GetTypes() 
         .Where(x => x.IsClass && !x.IsAbstract && x.GetInterfaces().Any(i => i.IsGenericType && i.GetGenericTypeDefinition() == commandHandlerOpenGenericType))); 
      } 
    } 

は、コンパイルエラーの画像です: enter image description here

は、どのように私は新しいリフレクションAPIと同じことを行うことができますか?

+0

は、このコードを試してみてください? – Markus

+0

@Markus Profile 78(Xamarin.IOS、Xamarin.Android、.net 4.5、windows store、windows phone 8 –

+0

コンパイラのエラーは何ですか?(画像にはコンパイラのエラーは表示されません) – elgonzo

答えて

16

これは、type/typeinfo splitによるものです。 Evolving the Reflection APIを参照してください。あなたはPCLにターゲットないプラットフォーム

assembly.DefinedTypes 
    .Where(x => x.IsClass && !x.IsAbstract && x.ImplementedInterfaces 
     .Any(i => i.GetTypeInfo().IsGenericType && i.GetGenericTypeDefinition() == commandHandlerOpenGenericType)) 
    .Select(x => x.AsType()) 
+0

ありがとうございました! –

関連する問題