是否可以重命名将为WCF OData System.Data.Services.Client序列化的属性?
我有一个名为Mailbox的类和一个名为Mailbox的属性。 这在C#中是不可能的,因为在这种情况下,名称Mailbox是为构造函数保留的。
使用DataSvcUtil.exe为csdl生成代码,提供:
error 0042: Name Mailbox cannot be used in type Mailbox. Member names cannot be the same as their enclosing type.
所以我想重命名属性以进行序列化。我尝试了几个属性,但没有一个工作。
[global::System.Data.Services.Common.DataServiceKeyAttribute("ID")]
public partial class Mailbox
{
[DataMember(Name = "Mailbox")]
[XmlElement(ElementName = "Mailbox")]
[JsonProperty(PropertyName = "Mailbox")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
public string MailBox
{
get
{
return this._mailbox;
}
set
{
this.OnsMailboxChanging(value);
this._mailbox = value;
this.OnsMailboxChanged()
}
}
private string _mailbox;
}
答案 0 :(得分:0)
我通过将代码移动到Visual Basic找到了一种解决方法,因为在VB中允许它具有属性和具有相同名称的类。我不喜欢这个解决方案,但至少我可以继续编码。