C# 防止Autofac主动注入属性?

C# 防止Autofac主动注入属性?,c#,autofac,property-injection,C#,Autofac,Property Injection,我有一个简单的课程: public class MyWidget { private string _something; public MyWidget(string name) { } public string Something { get { return _something; } set { _something = value; } } } 我在Autofac注册: var build

我有一个简单的课程:

public class MyWidget
{
    private string _something;

    public MyWidget(string name)
    {

    }

    public string Something
    {
        get { return _something; }
        set { _something = value; }
    }
}
我在Autofac注册:

var builder = new ContainerBuilder();
builder.RegisterType<MyWidget>();
var container = builder.Build();
var builder=newcontainerbuilder();
RegisterType();
var container=builder.Build();
如果我解析工厂并创建MyWidget的实例:

var myWidgetFactory = Container.Resolve<Func<string, MyWidget>>();
var myWidget = myWidgetFactory("test");
var myWidgetFactory=Container.Resolve();
var myWidget=myWidgetFactory(“测试”);

属性“Something”被赋值为“test”,即使它与构造函数参数无关。为什么Autofac认为它应该设置它的第一个属性?我如何防止这种情况?我正在使用Autofac v4.0.0。

这似乎是一个bug。你能建立一个测试项目吗?如果属性不用于写操作,它也可能有助于保护属性。这是一个错误,在Autofac 4.1+中已修复。就是这样。谢谢