2013-12-11 11 views
7

मैं वर्तमान में एक एक्सएमरिन.आईओएस ऐप लाइब्रेरी को पीसीएल (प्रोफाइल 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

मैं नए प्रतिबिंब एपीआई के साथ एक ही बात कर सकते हैं कैसे?

+0

कौन सा प्लेटफार्मों आप अपने पीसीएल में लक्षित कर सकता:

इस कोड का प्रयास करें? – Markus

+0

@ मार्कस प्रोफाइल 78 (Xamarin.IOS, Xamarin.Android, .NET 4.5, विंडोज़ स्टोर, विंडोज फोन 8 –

+0

आपको प्राप्त होने वाली कंपाइलर त्रुटियां क्या हैं? (छवि संकलक त्रुटियों को नहीं दिखाती है) – elgonzo

उत्तर

16

यह प्रकार/टाइपइन्फो विभाजन के कारण है। Evolving the Reflection API देखें।

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

काम किया बहुत धन्यवाद! –

संबंधित मुद्दे