VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • C#教程之C# Ioc、DI、Unity、TDD的一点想法和实践(3)

分别编译成功后,回到测试项目,添加引用,编译通过,运行测试:

算不算TDD?

四、主程序

1.添加控制台项目

2.添加Unity(5.8.6)包

3.修改App.Config为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection,Unity.Configuration, Version=5.2.1.0, Culture=neutral, PublicKeyToken=6d32ff45e0ccc69f" />
    <!--上一些的内容网上复制过来有错误,后来查看UnityConfigurationSection的定义,复制了对应的程序集
    type="命名空间.类名,程序集"
    -->
  </configSections>
  <unity>
    <containers>
      <container name="LockA">
        <register type="Lock.ILock,Lock.Interface"  mapTo="Lock.LockA,Lock.LockA" ></register>
      </container>
      <container name="LockB">
        <register type="Lock.ILock,Lock.Interface"  mapTo="Lock.LockB,Lock.LockB"></register>
      </container>
    </containers>
  </unity>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup>
</configuration>

4.引用接口

5.Main方法如下:

1
2
3
4
5
6
7
8
9
10
11
static void Main(string[] args)
{
    var container = new UnityContainer();
    UnityConfigurationSection config = (UnityConfigurationSection)ConfigurationManager.GetSection(UnityConfigurationSection.SectionName);
    config.Configure(container, "LockA");
    ILock l = container.Resolve<ILock>();
    Console.WriteLine(l.Init(2));
    Console.WriteLine(l.Init(1));
    Console.WriteLine(l.Init(-1));
    Console.ReadKey();
}

相关教程