2014-07-05 7 views
5

Sto lavorando a un progetto Android con Xamarin e lungo la strada, proprio come esercizio ho deciso di scrivere il mio contenitore IoC semplice. Ora, vengo a decidere se devo iniettare qualsiasi dipendenza per le mie istanze iniettate. Guardo Type.GetConstructors, dice che è disponibile nei progetti PCL, ma non riesco a ottenere GetConstructors.GetConstructors nella libreria Xamarin PCL

Ho System.Reflection nei miei utilizzi e se creo una libreria Android, sono disponibili GetConstructor/s. Il MSDN documentation dice sicuramente nel PCL. Forse non sono io a capire completamente cosa significa PCL nell'ecosistema Xamarin, ma pensavo che ciò significasse che sarebbe stato supportato.

Quindi, la mia domanda è, mi manca qualcosa o è effettivamente corretto?

UPDATE

Per chiunque voglia di vedere come ho fatto questo;

https://github.com/tbd-develop/simpletypeprovider

risposta

10

Xamarin utilizza gli stessi profili PCL che Microsoft ha rilasciato, ma non tutti i profili PCL supportano System.Type.GetConstructors().

Avrete probabilmente bisogno di fare qualcosa di simile (difficile da dire con certezza, perché ogni profilo PCL ha diverse limitazioni System.Reflection):

var info = type.GetTypeInfo(); 
foreach (var ctor in info.DeclaredConstructors) { 
    // find the .ctor you want... 
} 
+0

di ringraziamento, che mi ottiene i costruttori. – Hammerstein