我们的应用程序是部署在分布式环境中的企业应用程序。这是一个连接到另一台服务器上的 WCF 项目的 ASP.NET MVC 2.0 项目。我们需要的是使我们的业务模块可重用和可测试。
那么对于 WCF 来说,最好的解耦方法是什么?是温莎城堡 WCF 设施吗?还是应该使用Common Service Locator方法?为什么?
我们的应用程序是部署在分布式环境中的企业应用程序。这是一个连接到另一台服务器上的 WCF 项目的 ASP.NET MVC 2.0 项目。我们需要的是使我们的业务模块可重用和可测试。
那么对于 WCF 来说,最好的解耦方法是什么?是温莎城堡 WCF 设施吗?还是应该使用Common Service Locator方法?为什么?
以下是如何创建Execute(string type, string json)
方法的示例:
[OperationContract]
public void Execute(string type, string json)
{
Type commandType = Type.GetType(commandType);
Type commandHandlerType = typeof(ICommandHandler<>).MakeGenericType(commandType);
dynamic commandHandler = Bootstrapper.GetInstance(commandHandlerType);
dynamic command = JsonConvert.DeserializeObject(json, commandType);
commandHandler.Handle(command);
}
该代码示例使用JSON.NET将 JSON 反序列化为对象。XmlSerializer
如果您更喜欢 XML,也可以使用该类。