序列化接口wcf

时间:2013-06-24 20:59:52

标签: wcf serialization

我有一个名为IDeviceConfig的接口,如下所示:

[KnownType(typeof(Device))]
[KnownType(typeof(DeviceGroup))]
[DataContract()]
public interface IDeviceConfig
{
    [DataMember()]
    string Name { get; set; }

    [DataMember()]
    List<Property> Properties { get; set; }

    ActionResult PerformAction(string ActionId);
}

接口将由两个类实现,如下所示:

public class Device : IDeviceConfig
{
...
}

public class DeviceGroup : IDeviceConfig
{
...
}

在我的WCF服务中,我需要返回一个IDeviceConfigs列表;当我用KnownType装饰界面时,Visual studio抱怨说Attribute'KnownType'在这个声明类型上无效。

有人可以解释一下如何返回IDeviceconfigs列表吗?

1 个答案:

答案 0 :(得分:2)

如果查看KnownTypeAttribute的定义,则无法应用于接口。

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct, Inherited = true, AllowMultiple = true)]
public sealed class KnownTypeAttribute : Attribute

“已知类型只能与类和结构相关联,而不能与接口相关联。”从这里: http://msdn.microsoft.com/en-us/library/ms730167.aspx