0

我有一个接口,叫做 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 列表吗?

4

1 回答 1

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

于 2013-06-24T21:16:35.253 回答