public override object Resolve(Type t) { try { return(MyUnityContainer.Resolve(t)); } catch (ResolutionFailedException ex) { throw new ResolutionFailedException($"Resolution for {t.FullName} failed", ex); } }
public override object Resolve(Type t) { if (!t.IsInterface) { throw new ResolutionFailedException($"Tried to resolve type {t.FullName}. This is not an interface which indicates a bug."); } try { return(MyUnityContainer.Resolve(t)); } catch (Unity.Exceptions.ResolutionFailedException) { return(Substitute.For(new [] { t }, new object[0])); } }
public static void Initialize() { //系统内有且仅有一次,指定IOC容器 MyUnityContainer myContainer = new MyUnityContainer(); // 将基础结构层的类型与接口进行映射 ContainerHelper.SetInstance(myContainer); IUnityContainer unityContainer = myContainer.UnityContainer; unityContainer.RegisterType<IEntityValidator, DataAnnotationsEntityValidator>(); unityContainer.RegisterType<ITypeAdapter, AutomapperTypeAdapter>(); unityContainer.RegisterType<IIdentityGenerator, IdentityGenerator>(); unityContainer.RegisterType<IMd5Encryptor, Md5Encryptor>(); // 映射依赖具体技术的RepositoryContext unityContainer.RegisterType<IRepositoryContext, EntityFrameworkRepositoryContext<StockDataDbContext>>(); }
public static void Init() { // 系统内有且仅有一次,指定IOC容器 MyUnityContainer myContainer = new MyUnityContainer(); ContainerHelper.SetInstance(myContainer); myContainer.RegisterType<IEntityValidator, DataAnnotationsEntityValidator>(); myContainer.RegisterType<ITypeAdapter, AutomapperTypeAdapter>(); myContainer.RegisterType<IIdentityGenerator, IdentityGenerator>(); myContainer.RegisterType<IMd5Encryptor, Md5Encryptor>(); myContainer.RegisterType<ILogger, TraceSourceLog>(); myContainer.RegisterType<ISerializer, Serializer>(); myContainer.RegisterType<IMailService, MailService>(); myContainer.RegisterType<ICaptcha, Captcha>(); myContainer.RegisterType<ISystemConfig, SystemConfig>(); OnSystemInit(); }
protected override void RegisterTypes() { MyUnityContainer.RegisterType <IMainViewModel, MainViewModel>(); MyUnityContainer.RegisterType <object, Main>(typeof(Main).FullName); }