我在WPF應用程序中使用Prism Unity,並且我有一些問題需要理解共享服務的正確實現。模塊化共享服務接口體系結構和Interfaceversiondescription
我創建了一個DLL項目並添加了一個接口。
接口(DLL):
public interface IMyservice
{
string Version { get; }
int DoSomething(int x, int y);
}
接口的實現(類)在模塊內完成,該模塊被加載於主機應用程序啓動的,當然,我說我的DLL接口作爲參考我的主機應用程序。
ModuleA:
public class Myservice : IMyservice
{
public string Version => "V1.00";
public int DoSomething(int x, int y)
{
return x + y;
}
}
我註冊在我的主機應用程序的引導程序的IMyservice。我添加到ModuleB項目接口DLL作爲參考,然後我能夠通過從統一容器解析使用Myservice的實例。
container.Resolve<MyService>.DoSomething(1,1);
問題:
這是架構有效或我必須把接口的實現到我interface.dll?我在模塊中實現了接口,因爲我只想與其他人共享我的interface.dll而不是實現。我把這個實現放在moduleA中,因爲我想要它的模塊化。
如果這個架構是有效的設計,那麼我想知道,我如何能夠在運行時處理我的interface.dll的版本描述,而不是moduleA的版本描述。
是否要對_implementation_或_interface_進行版本化?目前,您對版本進行了版本升級,「AdvancedServcie」可能會返回'V2.00'作爲'版本',但它們都實現相同的接口。看看我對這個相關問題的答案:https://stackoverflow.com/questions/40827080/c-sharp-prism-for-wpf-common-modules-libraries-upgrading-strategy/40827662#40827662 – Haukinger
我想版本都是接口和實現,但彼此獨立。 – Shazter