0

我需要根據PropertyInfo.Name來解析屬性注入。這個類看起來像這樣屬性解析策略

public class Test 
{ 
    [Dependency] 
    public Test TestProperty1{ get; set; } 
} 

我想以某種方式能夠解決TestProperty1這樣幕後背後,沒有明確地重新鍵入屬性名稱。

container.Resolve<Test>("TestProperty1") 

期間要麼container.Resolve<Test>()container.BuildUp(new Test())通話**

我怎樣才能做到這一點?

+0

您的設計有問題。解決'Test'可能會導致堆棧溢出異常,因爲它依賴於它自己。你想解決什麼問題? – Steven

回答

0

我不知道我是否理解你想達到的目標。你希望Unity在不告訴它的情況下填充TestProperty1

使用DependencyAttribute不是一個好選擇。 This article explains why

要指示統一注入一個值TestProperty1必須修改註冊碼:

container.RegisterType<Test>(new InjectionProperty("TestProperty1")); 

呼叫解決將返回的Test一個實例,其TestProperty1填補。

如果您有一個Test的現有實例,則調用container.BuildUp()也會爲TestProperty1注入一些值。