0
我已經得到的(簡化)以下代碼位可用的屬性:使微軟統一依賴於構造
public abstract class BaseClass
{
[Dependency]
public IRequiredService RequiredService { get; set; }
protected string RequiredParameter { get; private set; }
public BaseClass(string requiredParameter)
{
this.RequiredParameter = requiredParameter;
}
}
public class DerivedClass : BaseClass
{
public DerivedClass(string requiredParameter) : base(requiredParameter)
{
RequiredService.DoSomething(); //this will fail!
}
}
換句話說,我希望有機會在統一填充RequiredService
構造函數......但這是不可能的,因爲該屬性還沒有被Unity填充。我可以添加IRequiredService
作爲必需的構造函數參數,但是我需要重構每個派生類的每個構造函數以包含該參數。
我想知道是否有更好的方法。
簡而言之,我想在完成一個類之後運行一些代碼,並且統一之後已經填充了標記爲[Dependency]
屬性的所有類的屬性。
有沒有簡單的方法來做到這一點?
您是否考慮在[[[InjectionMethod]](https://msdn.microsoft.com/en-us/library/dn507483(v = pandp.30))中放入'RequiredService.DoSomething();'。 aspx)調用而不是構造函數? –
@ScottChamberlain優秀的建議。我一定錯過了這個屬性。隨意將此變成正式答案,我會接受它。 – Shaamaan