protected sealed override object GetInstance(Type service, string key) { if (key != null) { return(ResolutionExtensions.ResolveNamed(this.Container, key, service)); } return(ResolutionExtensions.Resolve(this.Container, service)); }
/// <summary> /// Resolves the requested service instance. /// /// </summary> /// <param name="serviceType">Type of instance requested.</param><param name="key">Name of registered service you want. May be <see langword="null"/>.</param> /// <returns> /// The requested service instance. /// </returns> /// <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="serviceType"/> is <see langword="null"/>. /// </exception> protected override object DoGetInstance(Type serviceType, string key) { if (serviceType == null) { throw new ArgumentNullException("serviceType"); } if (key == null) { return(ResolutionExtensions.Resolve(this._container, serviceType)); } return(ResolutionExtensions.ResolveNamed(this._container, key, serviceType)); }
protected T Resolve <T>(string name) { return(ResolutionExtensions.ResolveNamed <T>(this.Container, name)); }
/// <summary> /// 按名称获取组件 /// </summary> /// <typeparam name="TService">组件类型</typeparam> /// <param name="serviceName">组件名称</param> /// <returns>返回获取的组件</returns> public static TService ResolveNamed <TService>(string serviceName) { return(ResolutionExtensions.ResolveNamed <TService>(_container, serviceName)); }
public static IRegistrationBuilder <TLimit, TReflectionActivatorData, TStyle> WithResolvedParameter <TLimit, TReflectionActivatorData, TStyle>(this IRegistrationBuilder <TLimit, TReflectionActivatorData, TStyle> registration, Type namedServiceType, string namedService) where TReflectionActivatorData : ReflectionActivatorData { return(RegistrationExtensions.WithParameter <TLimit, TReflectionActivatorData, TStyle>(registration, new ResolvedParameter((ParameterInfo pi, IComponentContext ctx) => pi.ParameterType == namedServiceType, (ParameterInfo pi, IComponentContext ctx) => ResolutionExtensions.ResolveNamed(ctx, namedService, namedServiceType)))); }
public static T GetInstance <T>(string key, params object[] prms) { ServiceLocator.CheckReady(); return(ResolutionExtensions.ResolveNamed <T>(ServiceLocator._container, key, from p in prms select new TypedParameter(p.GetType(), p))); }
public static T GetInstance <T>(string key) { ServiceLocator.CheckReady(); return(ResolutionExtensions.ResolveNamed <T>(ServiceLocator._container, key)); }
public static object GetInstance(Type serviceType, string key) { ServiceLocator.CheckReady(); return(ResolutionExtensions.ResolveNamed(ServiceLocator._container, key, serviceType)); }