在运行时注入依赖的最佳方法

时间:2017-02-18 20:00:10

标签: c# dependency-injection unity-container

Example of markdown code: foo ``` fenced code block (fail) ``` bar lalala... 项目中的

DataAccessLayer.cs

DataAccess
public class Foo : IFoo { public void Bar() { // Implementation } } 项目中的

IDataAccessLayer.cs

DataAccess.Contracts
public interface IFoo { void Bar(); } 项目中的

MainClass.cs

Main

我想在运行时直接在class Program { public static IFoo Foo { get; set; } // Her I want to inject dependency directly at runtime static void Main(string[] args) { } } 属性中注入依赖项。

如果可能的话,我想使用配置文件而不是属性来进行类和接口之间的映射。

最好的方法是什么?如果可能,如何使用Unity?

1 个答案:

答案 0 :(得分:0)

您可以从NuGet包中安装Unity。然后,你可以做这样的事情:

 static void Main(string[] args)
    {
        var unityContainer = new UnityContainer();
        unityContainer.RegisterType<IDataAccessLayer, DataAccessLayer>();
        var instancerOfDataAccessLayer = unityContainer.Resolve<IDataAccessLayer>();
        instancerOfDataAccessLayer.Foo();
        Console.ReadLine();
    }

您可以在此处找到有关Unity的更多信息:http://geekswithblogs.net/danielggarcia/archive/2014/01/23/introduction-to-dependency-injection-with-unity.aspx

希望它有所帮助。