Wcf silverlight域服务don';不允许返回泛型对象
我有一个平稳运行的域服务,一些公开函数返回已定义实体的通用列表,但由于某些原因,我添加了一些公共信息,因此我创建了一个通用对象,用我需要返回的额外信息包装集合 但是,在做了更改并尝试在客户端中使用该服务后,该函数不会显示在上下文中,我已经搜索了它,找到的是泛型IQueryable的属性 我的包裹课Wcf silverlight域服务don';不允许返回泛型对象,wcf,silverlight,generics,ria,domainservices,Wcf,Silverlight,Generics,Ria,Domainservices,我有一个平稳运行的域服务,一些公开函数返回已定义实体的通用列表,但由于某些原因,我添加了一些公共信息,因此我创建了一个通用对象,用我需要返回的额外信息包装集合 但是,在做了更改并尝试在客户端中使用该服务后,该函数不会显示在上下文中,我已经搜索了它,找到的是泛型IQueryable的属性 我的包裹课 public class Wrap<T> { public String commonProperty { get; set; } public String another
public class Wrap<T>
{
public String commonProperty { get; set; }
public String anotherCommonProperty { get; set; }
public List<T> items { get; set; }
}
公共类包装
{
公共字符串commonProperty{get;set;}
公共字符串另一个公共属性{get;set;}
公共列表项{get;set;}
}
在我的服务域中
public Wrap<SomeClass> GetAll()
{
Wrap<SomeClass> myObject = new Wrap<SomeClass>();
myObject.items = new List<SomeClass>();
myObject.commonProperty = "some info";
myObject.anotherCommonProperty = "some info";
return myObject;
}
public Wrap GetAll()
{
Wrap myObject=新的Wrap();
myObject.items=新列表();
myObject.commonProperty=“一些信息”;
myObject.anotherCommonProperty=“一些信息”;
返回myObject;
}
可能在Wrap
类中添加[KnownType(typeof(SomeClass))]
属性,问题是您需要为域中的每个类都包含一个KnownType
属性(这是因为您正在创建一个多态服务)
并在服务的
GetAll
方法中添加[ServiceKnownType(typeof(SomeClass))]
(这是针对wcf服务的,我不知道是否对域服务有效).WCF RIA域服务不支持通用实体类型。IEnumerable
和IQueryable
是特例
您的方法被忽略,因为它不匹配。
在更改之前,GetAll
被识别为查询方法。您可以通过添加属性强制执行该操作
[Query]
public Wrap<SomeClass> GetAll()
[查询]
公共包装GetAll()
现在它并没有悄然消失。但会生成编译时错误:
类型“Wrap`1”不是有效的实体类型。实体类型不能为空
通用的