2014-02-16 82 views
1

看了看,我還沒有看到專門解決我的問題的答案。我明白,統一採用多參數ctor。但是,當參數屬於同一類型或不同類型時,這會導致我出現一些奇怪的誤解。有:使用統一的多個構造函數選擇

public MyClass(string s1, string s2) 

public MyClass(string s1) 

public MyClass(Guid g1) 

爲什麼當我提供一個ResolverOverrideGuid一個ParameterOverride沒有統一首次嘗試雙字符串參數?

當我在ParameterOverride中提供一個類似的情況時,它仍然首先嚐試雙字符串參數 - 我沒有明確告訴Unity嗎?

最後,我該如何阻止Unity做到這一點?我必須使用一些「魔術」來設置ResolveRegisterType嗎?

請有人可以清除我的頭骨中發生的不協調....?

Regards

回答

0

首先,它選擇具有InjectionConstructor屬性的構造函數。然後大多數參數的構造函數計數。

Here是不錯的文章。