J'essaie de comprendre l'attribut Constructor Injection du MEF. Je n'ai aucune idée de comment je lui dis de charger les paramètres du constructeur.MEF Constructor Injection
C'est la propriété que je suis en train de charger
[ImportMany(typeof(BUsers))]
public IEnumerable<BUsers> LoadBUsers { get; set; }
Voici le code que je utilise pour importer les ensembles.
try
{
var catalog = new AggregateCatalog();
catalog.Catalogs.Add(new AssemblyCatalog(System.Reflection.Assembly.GetExecutingAssembly()));
catalog.Catalogs.Add(new DirectoryCatalog("DI"));
var container = new CompositionContainer(catalog);
container.ComposeParts(this);
}
Voici la classe que je suis en train de charger
[Serializable]
[Export(typeof(BUsers))]
public class EditProfile : BUsers
{
[ImportingConstructor]
public EditProfile(string Method, string Version)
{
Version = "2";
Action = "Edit";
TypeName = "EditProfile";
}
Je viens de télécharger le nouveau chez CodePlex. La méthode de ComposeExportedValue() n'est pas dans la classe de CompositionContainer. Où est-ce? –
Je pense avoir trouvé la méthode. C'est dans la classe de AttributedModelServices, où la méthode est définie en tant que méthode étendue à la classe CompositionContainer. –
@ David.Chu.ca Oui, ComposeExportedValue est une méthode d'extension de la classe AttributedModelServices. –