gpt4 book ai didi

.net - 是否可以禁用 UnityContainer 的自动实例化行为?

转载 作者:行者123 更新时间:2023-12-02 05:10:28 25 4
gpt4 key购买 nike

UnityContainer.Resolve() 将实例化没有通过反射显式注册的类,允许这样的事情:

using System;
using Microsoft.Practices.Unity;

namespace ConsoleApplication2
{
public class Foo
{
public void SayHello()
{
Console.WriteLine("Hello");
}
}

class Program
{
static void Main(string[] args)
{
var container = new UnityContainer();
var foo = container.Resolve<Foo>();
foo.SayHello();
}
}
}

我的问题是,如果我愿意,可以禁用此行为,以便不会自动解析该类(引发异常或返回空值?)

最佳答案

它不是内置的,但您可以编写一个容器扩展来改变这种行为。这将需要两件事 - 首先,注册事件的处理程序,用于记录类型何时在策略列表中注册,其次,一个策略将检查“已注册”策略并在它不存在时抛出。

如果您熟悉编写扩展程序,它就相当小且易于操作。不幸的是,我现在没有时间把它们放在一起,抱歉。

关于.net - 是否可以禁用 UnityContainer 的自动实例化行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6141199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com