我有一个名为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列表吗?
答案 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