diff --git a/src/IoC/IoC/Container.cs b/src/IoC/IoC/Container.cs index 118add0..8816069 100644 --- a/src/IoC/IoC/Container.cs +++ b/src/IoC/IoC/Container.cs @@ -1,6 +1,7 @@ using Autofac; using IoC.implement; using IoC.inerface; +using IoC.services; namespace IoC { @@ -15,7 +16,7 @@ namespace IoC ContainerBuilder builder = new ContainerBuilder(); //在仲介公司裡寫需求人申請單 - builder.RegisterType(); + builder.RegisterType(); //小明所需打掃阿姨需求 builder.RegisterType().As(); diff --git a/src/IoC/IoC/IoC.csproj b/src/IoC/IoC/IoC.csproj index 2c6e46f..48cbba7 100644 --- a/src/IoC/IoC/IoC.csproj +++ b/src/IoC/IoC/IoC.csproj @@ -56,6 +56,8 @@ + + diff --git a/src/IoC/IoC/Program.cs b/src/IoC/IoC/Program.cs index 3d1fc0a..3891504 100644 --- a/src/IoC/IoC/Program.cs +++ b/src/IoC/IoC/Program.cs @@ -1,51 +1,9 @@ using Autofac; -using IoC.implement; -using IoC.inerface; +using IoC.services; using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; namespace IoC { - /// - /// (沒有注入的) - /// 小明直接依賴 Aunt 不是依賴抽象 - /// 日後要改必須動內部 - /// - public class Mine - { - public Aunt aunt = new Aunt(); - - public void Room() - { - aunt.Swapping(); - } - } - - /// - /// 小明 ( 有注入的 ) - /// - public class MineWithMiddle - { - private ISwapable aunt; - - /// - /// 依賴抽象[打掃動作的人] - /// - /// - public MineWithMiddle(ISwapable swapAble) - { - aunt = swapAble; - } - - public void Room() - { - aunt.Swapping(); - } - } - - class Program { static void Main(string[] args) @@ -57,11 +15,11 @@ namespace IoC //======================== - // 有注入的 IContainer middleCompany = Container.MiddleCompany(); + //仲介公司(IOC AutoFac)自動幫小明注入一個打掃阿姨 - MineWithMiddle mineWithMiddle = middleCompany.Resolve(); + MineIOC mineWithMiddle = middleCompany.Resolve(); mineWithMiddle.Room(); diff --git a/src/IoC/IoC/services/Mine.cs b/src/IoC/IoC/services/Mine.cs new file mode 100644 index 0000000..bb4a9d0 --- /dev/null +++ b/src/IoC/IoC/services/Mine.cs @@ -0,0 +1,17 @@ +using IoC.implement; + +namespace IoC.services +{ + /// + /// 沒有注入 + /// + public class Mine + { + public Aunt aunt = new Aunt(); + + public void Room() + { + aunt.Swapping(); + } + } +} diff --git a/src/IoC/IoC/services/MineIOC.cs b/src/IoC/IoC/services/MineIOC.cs new file mode 100644 index 0000000..1f36ef0 --- /dev/null +++ b/src/IoC/IoC/services/MineIOC.cs @@ -0,0 +1,26 @@ +using IoC.inerface; + +namespace IoC.services +{ + /// + /// 有注入 + /// + public class MineIOC + { + private readonly ISwapable aunt; + + /// + /// 依賴抽象[打掃動作的人] + /// + /// + public MineIOC(ISwapable swapable) + { + aunt = swapable; + } + + public void Room() + { + aunt.Swapping(); + } + } +}