/// <summary> /// 当前的实例 /// </summary> public static TInterface Resolve <T, TInterface>() where T : IResolveAsSingleton, TInterface, new() { if (_resolveFunc != null) { var instance = _resolveFunc(typeof(TInterface)); if (instance != null) { return((TInterface)_resolveFunc(typeof(TInterface))); } } return(ResolveAsSingletonHelper <T, TInterface> .Resolve()); }
/// <summary> /// 重新设置工厂方法 /// </summary> /// <param name="func"></param> public static void SetFactoryFunc <T, TInterface>(Func <TInterface> func) where T : IResolveAsSingleton, TInterface, new() { ResolveAsSingletonHelper <T, TInterface> .SetFactoryFunc(func); }
/// <summary> /// 重新设置工厂方法(恢复默认) /// </summary> public static void ResetFactoryFunc <T, TInterface>() where T : IResolveAsSingleton, TInterface, new() { ResolveAsSingletonHelper <T, TInterface> .ResetFactoryFunc(); }