我有一个公开各种类的 WCF。我在一些属性上应用了 DataAnnotation 属性。
我也希望它们在消费者项目中生成,有没有办法做到这一点?
我有一个公开各种类的 WCF。我在一些属性上应用了 DataAnnotation 属性。
我也希望它们在消费者项目中生成,有没有办法做到这一点?
不。WCF 是一个基于消息的系统,因此连接您的客户端和您的服务的只是网络上的 XML 序列化消息(及其格式)。
创建代理时,WCF 运行时所能做的就是重新创建数据结构,以便在 XML 序列化客户端类之一时,线路上的表示将与服务器端类相同。
客户端无法“触及”服务器的内部并找出有关 .NET 特定内容的信息,例如数据注释......
也就是说:如果您控制通信的两端,例如您同时编写服务器和客户端,则可以采用另一种方法:
MyData
并且该类存在于引用的共享程序集中,WCF 运行时将重用它(而不是重新创建一个新的、单独的客户端代理类)使用这个“技巧”,您可以在服务和客户端之间共享某些类(例如数据类) - 包括其上的所有 .NET 属性