它只是一個服務定位器類型的模式我正試圖實現,我想趕上嘗試註冊一個實現到它不屬於的接口,如:IsAssignableFrom,IsInstanceOf和BaseType測試
public void Add(Type interfaceType, object implementingObject)
{
// ... check for nulls
// NO GOOD
if(!implementingObject.GetType().IsAssignableFrom(interfaceType)...
// NO GOOD
if(!implementingObject.GetType().IsInstanceOf(interfaceType)...
// FINALLY!
if(!implementingObject.GetType().BaseType.IsAssignableFrom(interfaceType)...
// ... ok, add it
}
現在我最終想通過查看NUnit的isInstanceOf斷言內部使用BaseType.IsInstanceOf,但它似乎仍然是統一的。
有人可以解釋爲什麼這是有道理的?有沒有更簡單的方法來做到這一點?