我们希望通过WCF发布业务层的部分内容。我们的API使用CQRS架构,该架构已经很好地与具有离散POCO输入和POCO输出相匹配。我们希望重用这些POCO类而不是将它们全部复制到合同中。例如:
[ServiceContract]
public interface IMyService
{
[OperationContract]
MyDomain.SomeQuery.Result GetStuff(MyDomain.SomeQuery.Arguments args);
}
我的问题是我们的POCO中有一些不严格的POCO结构。
class Arguments
{
public StudentId Id { get; set; }
}
这些标识符结构可以表示为字符串。在我们的ASP.NET MVC项目中,我们使用类型转换器将这些属性序列化为传出JSON中的字符串,并使用传入请求中的字符串进行模型绑定。
理想情况下,我们希望这些标识符在WCF中的WSDL / MEX中表示为字符串,使用类型转换器进行序列化和反序列化。客户应该完全不知道我们在我们的域内有这个东西。
另一种方法是复制所有这些类,这会给过程带来风险和繁琐的因素。