我正在用C#編寫一個工廠模式的dll。工廠收到一個枚舉並返回一個接口。根據接收到的枚舉,它會創建不同的對象並將其返回封裝在接口中。工廠內的任何類都實現了接口,其訪問修飾符是內部的,除了自己的接口是公共的。通過接口訪問不同的對象屬性? C#
問題是當我從主項目調用dll時。在工廠內部創建的每個對象都有不同的屬性,並不是爲什麼我無法從主中訪問或修改這些屬性。一些幫助?
這是來自主工廠的調用。
IConfigurator config = ConfigFactory.Instance.CreateConfigurator(Model.First);
這是怎樣的一家工廠裏打工(在DLL中):
public IConfigurator CreateConfigurator(Model model)
{
switch (model)
{
case Model.First:
return (First)new First(model);
case Model.Second:
return (Second)new Second(model);
case Model.Third:
return (Third)new Third(model);
}
}
第一,第二和第三個具有不同的屬性,我不能夠從接口對象修改它收到
謝謝。
您通過您的意思不能修改的屬性?您需要分享您的代碼,以便我們能夠提供適當的解決方案。 –
使用接口的關鍵在於你有符合接口和代碼的對象,它們能夠平等對待它們。這聽起來不像你這樣的情況。 – Luaan
不好意思,我已經用代碼示例編輯了這個問題。 – user462916