public void AddComponent(Type service, Type implementation, string key = "", ComponentLifeStyle lifeStyle = ComponentLifeStyle.Transient, params Parameter[] parameters) { SupportabilityCheck.CheckParameters(parameters); if (service.IsGenericTypeDefinition) { throw new NotSupportedFeaturesException(); } else { registerTypes.AddRange(new[] { implementation }); PartBuilder pb = null; pb = builder.ForType(implementation); if (string.IsNullOrEmpty(key)) { pb = pb.Export(it => it.AsContractType(service)); } else { pb = pb.Export(it => it.AsContractType(service).AsContractName(key)); } pb = pb.SelectConstructor(ctors => ctors.MinBy(it => it.GetParameters().Length)); pb = pb.LifeStyle(lifeStyle); } }
public T TryResolve <T>(string key = "", params Parameter[] parameters) { SupportabilityCheck.CheckParameters(parameters); return(Container.GetExportedValueOrDefault <T>(key)); }
public object TryResolve(Type type, string key = "", params Parameter[] parameters) { SupportabilityCheck.CheckParameters(parameters); return(Container.GetExportedValueOrDefault(type, key)); }
public T Resolve <T>(string key = "", params Parameter[] parameters) where T : class { SupportabilityCheck.CheckParameters(parameters); return(Container.GetExportedValue <T>(key)); }