gpt4 book ai didi

serialization - RIA DomainService 不使用 DataContracts 生成客户端代码

转载 作者:行者123 更新时间:2023-12-04 06:46:00 25 4
gpt4 key购买 nike

我正在开发 Silverlight 4.0 应用程序并使用 RIA 服务。我在服务器端创建了一个类,其中应用了 DataContract 和 DataMember 属性。

DomainService 将此类公开为查询结果,因此在客户端为其生成代码。但不知何故,它不会为类的所有属性生成代码。 guid、string、int、bool 等类型的原始属性生成得很好,但如果我有我自己的复杂类型的属性,则不会在客户端上创建该属性。

这是有问题的类(class):

    [DataContract]
[KnownType(typeof(SummaryGroup))]
public class SummaryDataSet
{
public SummaryDataSet()
{

}

[KeyAttribute]
[DataMember]
public Guid Guid { get; set; }

[DataMember]
public SummaryGroup SummaryGroup { get; set; }

}

Guid 属性在客户端上创建就好了。 SummaryGroup 属性不是在客户端上创建的。这是 SummaryGroup 的代码:
[DataContract]
public class SummaryGroup
{
public SummaryGroup()
{
}

[KeyAttribute]
[DataMember]
public Guid Guid { get; set; }

[DataMember]
public string Name { get; set; }

[DataMember]
public int Sequence { get; set; }
}

两个类都在同一个命名空间中。

问题:为什么没有在客户端上创建 SummaryDataSet 的 SummaryGroup 属性,我应该怎么做才能解决这个问题?

最佳答案

WCF RIA 无法处理复杂类型,但您可以尝试以下操作:

    [DataContract]
[KnownType(typeof(SummaryDataSet))]
public class SummaryDataSet
{
public SummaryDataSet()
{ }

[KeyAttribute]
[DataMember]
public Guid Guid { get; set; }

[DataMember]
[Association("SummarySet_SummaryGrp_FK", "Guid", "Guid")]
public SummaryGroup SummaryGroup { get; set; }

}

这为 RIA 提供了从 SummaryDataSet 连接到 SummaryGroup 的信息。

这假设您可以从服务器端服务请求 SummaryDataSet 和 SummaryGroup。

关于serialization - RIA DomainService 不使用 DataContracts 生成客户端代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3760312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com