什么是微软Unity?

发布于 2024-12-17 20:10:39 字数 82 浏览 1 评论 0 原文

我正在寻找 Unity 的一些基本示例/解释。我很难理解这个概念。我确实对注入模式有基本的了解,因为 Unity 似乎与它紧密相关。我很感激任何帮助。

I'm looking for some basic examples / explanations of Unity. I have hard time grasping the concept. I do have basic understanding of the Injection pattern as it seems that Unity is tightly related to it. I appreciate any help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

优雅的叶子 2024-12-24 20:10:39

Unity 是用于.NET。当相关类型遵循依赖倒置原则时,它可用于组成对象图。

最简单的方法是使用构造函数注入模式:

public class Foo : IFoo
{
    private readonly IBar bar;

    public Foo(IBar bar)
    {
        if (bar == null)
            throw new ArgumentNullException("bar");

        this.bar = bar;
    }

    // Use this.bar for something interesting in the class...
}

您现在可以在应用程序的 组合根

container.RegisterType<IFoo, Foo>();
container.RegisterType<IBar, Bar>();

这是注册阶段href="http://blog.ploeh.dk/2010/09/29/TheRegisterResolveReleasePattern.aspx" rel="nofollow noreferrer">注册解析发布模式。在解决阶段,容器自动连接对象图,无需进一步配置:

var foo = container.Resolve<IFoo>();

这会自动工作,因为所涉及的类的静态结构包括容器组成对象图所需的所有信息。

Unity is one of several DI Containers for .NET. It can be used to compose object graphs, when the types in question follow the Dependency Inversion Principle.

The easiest way to do that is to use the Constructor Injection pattern:

public class Foo : IFoo
{
    private readonly IBar bar;

    public Foo(IBar bar)
    {
        if (bar == null)
            throw new ArgumentNullException("bar");

        this.bar = bar;
    }

    // Use this.bar for something interesting in the class...
}

You can now configure Unity in the application's Composition Root:

container.RegisterType<IFoo, Foo>();
container.RegisterType<IBar, Bar>();

The is the Register phase of the Register Resolve Release pattern. In the Resolve phase the container will Auto-wire the object graph without further configuration:

var foo = container.Resolve<IFoo>();

This works automatically because the static structure of the classes involved includes all the information the container needs to compose the object graph.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文