【发布时间】:2013-12-08 10:54:17
【问题描述】:
我想将两种类型返回给调用方法,我知道我们不能在 WCF RIA 中使用 out 或 ref。
我创建了一个自定义类来获取这样的必要信息:
[DataContract]
public class Web_GetPrivilegesResult {
[Include]
[DataMember]
public List<tblPrivilege> ResultList { get; set; }
[DataMember]
public Guid? ParentGroupID { get; set; }
}
[Invoke]
public Web_GetPrivilegesResult Web_GetPrivileges(Guid id, bool isSuperAdmin, bool isEnable, bool returnAccessListIfDisbaled) {
...
}
在客户端(silverlight 应用程序)调用该函数时,它仅返回 ParentGroupID - ResultList 不会重新运行。我该如何纠正这个问题?
更新
最后更改的代码:
[DataContract]
public class Web_GetPrivilegesResult {
//[System.ComponentModel.DataAnnotations.Composition]
//[Include]
[DataMember]
public List<tblPrivilege> Result { get; set; }
[DataMember]
public Guid? ParentGroupID { get; set; }
}
//[Query]
[Invoke]
public Web_GetPrivilegesResult Web_GetPrivileges(Guid id, bool isSuperAdmin, bool isEnable, bool returnAccessListIfDisbaled) {
tblUsersAndGroup usersAndGroup = new tblUsersAndGroup() { ID = id, IsSuperAdmin = isSuperAdmin, IsEnable = isEnable };
Guid? parentGroupID;
List<tblPrivilege> result = GetPrivileges(usersAndGroup, out parentGroupID, returnAccessListIfDisbaled, this.DataContext);
//System.Data.Linq.DataLoadOptions options = new System.Data.Linq.DataLoadOptions();
//options.LoadWith<Web_GetPrivilegesResult>(q => q.Result);
//this.DataContext.LoadOptions = options;
//List<Web_GetPrivilegesResult> res = new List<Web_GetPrivilegesResult>();
//res.Add(new Web_GetPrivilegesResult() { ParentGroupID = parentGroupID, Result = result });
return new Web_GetPrivilegesResult() { ParentGroupID = parentGroupID, Result = result };
}
谢谢
【问题讨论】:
-
没有返回,因为它是空的?
-
no ResultList 属性未在 silverlight 中生成,我无法访问它
标签: c# wcf silverlight-5.0 wcf-ria-services ria