nuget 包下载
Nuget:
unity.configuration ,
unity ,unity.abstractions ,
unity.interception ,
unity.interception.configuration(这个一定要下载,不然没办法读取配置文件)
web
web层(可以做成单例,全局只有一个unity容器)
ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = "UNITY.Config";//找配置文件的路径
Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
UnityConfigurationSection section = (UnityConfigurationSection)configuration.GetSection(UnityConfigurationSection.SectionName);
IUnityContainer container = new UnityContainer();
section.Configure(container, "kso");
IUSERBLL ss = container.Resolve<IBLL.IUSERBLL>();
ss.Show();
Console.ReadKey();
bll 层
web 引用 业务层以及接口层,还有dal层要不然实例化不了
[Dependency] //属性注入 必须是public 否则会报错
public Istudentdal Istudentd { get; set; }
[InjectionConstructor]//构造函数注入 ,推荐使用,自动构造下一层
public USERBLL(IUSERDAL uSERDAL) {
string usedal = uSERDAL.stu();
uSERDAL.show(); Console.WriteLine("bll实例化的cUSERBLL");
}
public void create()
{
Console.WriteLine("bll实例化的create");
}
public void Show()
{
Istudentd.show();
Istudentd.stushows(); Console.WriteLine("bll实例化的USERBLL Show");
}
dal 层
跟上面差不多, 接口与实现
。。。。。省略
web 配置文件
<configuration>
<configSections>
<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Unity.Configuration"/>
</configSections>
<unity>
<sectionExtension type="Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigurationExtension, Unity.Interception.Configuration"/>
<containers>
<container name="kso">
<register type="IBLL.IUSERBLL,IBLL" mapTo="BLL.USERBLL,BLL"/>
<register type="IDAL.Istudentdal,IDAL" mapTo="DAL.studentdal,DAL" />
<register type="IDAL.IUSERDAL,IDAL" mapTo="DAL.USERDAL,DAL" />
</container>
</containers>
</unity>
</configuration>