诚实2是微不足道的。您可以轻松地将配置文件复制到构建目录。简单的谷歌搜索可以为您提供所需的一切。
对于第1部分,您可以在此处选择,我建议您只需在界面表单中为您的服务定义API。然后使用DI通过dll插入“实现”。它一直在使用 适配器模式 ,然后使用类似的东西 统一 ,用于运行时实现。
伪:
interface IMyServiceAdaptor { void SomeMethod(params ); void SomeMethod2(params ); } public class ServiceAdaptor : IMyServiceAdaptor{ #psudo code ServiceProxyClient client { get;set;} public void SomeMethod(parms){ var convertedParams = Convert(parms); return client.SomeMethod(convertedParams ); } ...etc } public class MyClient { [Dependancy] IMyServiceAgent agent { get;set;} public MyClient(){ #resolve }
}
概念很简单。您有一个服务的内部表示(IMyServiceAdaptor)。重要的是它完全独立于实际调用您的服务的底层代理(服务引用)调用。我们的想法是为您的服务创建友好的界面,并与您进行交互。您始终调整服务以满足您的应用程序界面API。这将保护您免受服务端的更改,提供可用于注入的接口,以及允许您插入一些额外的逻辑来处理故障。
在花了一些时间研究其他事情之后,我回到了这个问题并找到了一个相关的问题 这里 。 Trond对这个问题的回答对我来说很合适,并且比其他任何东西都简单得多。