【问题标题】:Enum as Key in RIA Services枚举作为 RIA 服务中的键
【发布时间】:2011-02-03 11:29:23
【问题描述】:

在我的实体类中,我使用枚举作为关键属性:

[DataContract]
public class MultimediaType
{
    [DataMember]
    [Key]
    public Identificator Id { get; set; }
    [DataMember]
    public string Name { get; set; }
    [DataMember]
    public string Description { get; set; }

    [DataContract]
    public enum Identificator
    {
        [EnumMember]
        Image = 1,
        [EnumMember]
        Video = 2,
        [EnumMember]
        Sound = 3
    }
}


[EnableClientAccess()]
public class DomService : DomainService
{
    List<MultimediaType> _multimediaTypes = new List<MultimediaType>()
    {
        new MultimediaType()
        {
            Id = MultimediaType.Identificator.Image,
            Name = "Image",
            Description = "This is type for all images."
        },
        new MultimediaType()
        {
            Id = MultimediaType.Identificator.Video,
            Name = "Video",
            Description = "This is type for all videos."
        },
        new MultimediaType()
        {
            Id = MultimediaType.Identificator.Sound,
            Name = "Sound",
            Description = "This is type for all sounds."
        },
    };

    [Query]
    public IQueryable<MultimediaType> GetMultimediaTypes()
    {
        return _multimediaTypes.AsQueryable();
    }
}

我的客户端是使用我的域服务的 SilverLight 应用程序。

我不知道出了什么问题,但我得到了这个错误:

属性“MultimediaType.Id”被标记为关键属性,但它不可序列化。您是否缺少 DataMemberAttribute?

你知道我做错了什么吗?非常感谢!

【问题讨论】:

    标签: silverlight serialization enums key ria


    【解决方案1】:

    EnumMemberAttribute : 指定字段是枚举成员,应该被序列化。

    检查以下 lins:

    http://msdn.microsoft.com/en-us/library/system.runtime.serialization.enummemberattribute(v=vs.95).aspx

    Sharing Enum with WCF Service

    另请参阅备注和示例

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多