WCF-以任何方式将属性标记为已忽略?

| 基本上,如果我有以下几点:
[DataContract]
public class Foo
{
    [MyCustomAttribute(...)]
    [DataMember(IsRequired = true)]
    public int bar { get; set; }
}
我如何获得它,以便当用户使用“添加服务引用...”生成类时忽略ignored1。 基本上,我不希望在客户端生成的代码的属性上设置该属性。请记住,我仍然希望属性本身显示出来,但是基本上客户应该看起来像这样...
[DataContract]
public class Foo
{
    [DataMember(IsRequired = true)]
    public int bar { get; set; }
}
    
已邀请:
        无法将属性包含在客户端生成的代码中 参考:http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/ce241118-bc79-4788-a739-c445a52fcd1d     
        
[DataMember]
是序列化引擎的一部分,因此是必需的。您在代理中看到它的原因是代理使用与服务相同的“ 4”。当IsRequired设置为“ 5”时,代理可以确定是否可以发送客户端(如果设置了必需的值)。 从WSDL可以确定是否需要一个属性,因此根据WSDL文件设置ѭ6。不是服务的源代码。默认情况下,代理完全由网上提供的服务描述生成。正如其他答案所述,您肯定不会将自己的自定义属性复制到代理中。     
        一种可能性是创建一个接口并将Attribute放置在接口方法上。 您可以查询接口而不是具体的类,但是WCF只会看到该类的具体实现。 你可以说:
 [DataContract] 
 public class Foo : IFoo
 {
     [DataMember(IsRequired = true)]
     public int bar { get; set; } 
 }

 public interface IFoo 
 {
     [MyCustomAttribute(...)]
     int bar { get; set; } 
 }
    

要回复问题请先登录注册