2010-11-04 63 views
1

问题:派生接口对WCF代理类

我有两个(或更多)的类其是非常相似:一个类的属性是其它类的属性的子集。更具体地说,属性名称和语义是相等的,但不一定是它们的类型。但是,如果具有相同名称的财产的类型不同,这些类型又是非常类似(在同一意义上)。

我想为所有相似类集合派生通用接口,所以我可以以相同的方式使用不同类的实例。

由于我的类有超过100个属性,我想避免手动创建接口,如果有可能的话。

该接口应该包含所有相似类的所有属性集合的联合。 (当一个属性被读取时,对于特定对象不存在,null应该被返回。当这样一个未定义的属性被设置时,什么都不应该发生。)所以我想一个接口不再适合了,而是一个接口包装类或不同的东西......

语境:

我使用WCF消费Web服务(CreateSalesOrder)。的服务的输入消息需要

输出消息中携带的架构类型的元素的XML模式类型Request_SalesOrder由其它XSD类型的儿童等Request_ItemRequest_ShipToLocation等的元素Response_SalesOrder其中具有类似的架构类型的子元素Response_Item,Response_ShipToLocation等和一些附加元素,例如元素PriceTotal类型Response_PriceTotal

我想建立一个使用ASP.Net MVC消费Web服务的UI。所以我有一个视图呈现一个创建销售订单的表单。提交Web Service请求后,必须使用Web Service响应消息中的值更新表单字段。

表单字段绑定到访问代理类属性的视图模型。当提交表单时,视图模型必须更新代理类A的实例,而在表单使用响应消息中的值呈现的情况下,视图模型从代理类B的实例中读取。

回答