Skip to main content
 首页 » 编程设计

c#之.NET Web 服务之如何使属性不可见

2024年01月21日30TianFang

我有一个 ASP.NET (.asmx) Web 服务项目,它的方法如下:

 public int GetData(Data d); 

并且数据类具有属性:

  public class Data 
    { 
        public int Id { get; set; } 
        public string Name { get; set; } 
    } 

我想让客户看到“Id”属性,而不是“Name”属性。它们都必须是公共(public)的,因为应用程序的内部逻辑需要这些属性是公共(public)的。

那么如何设置客户端不可见的“名称”属性而不更改其公共(public)访问器,并且不进行私有(private)获取、私有(private)设置?

请您参考如下方法:

您可以使用 XmlIgnore 标记阻止序列化,客户端生成的代理类将不包含属性 Name。

public class Data 
{ 
  public int Id{get;set;} 
 
  [XmlIgnore()] 
  public string Name{get;set;} 
}