【问题标题】:Sending contained object over RIA Services通过 RIA 服务发送包含的对象
【发布时间】:2009-09-09 12:14:37
【问题描述】:

我有这样的课:

public class object {
   [Key]
   int number;

   String mystring;

   OtherObject anotherobject;
}

当我通过 RIA 发送此内容时,我的 silverlight 应用程序可以看到 object.number 和 object.mystring,但看不到 object.anotherobject!!! 我应该怎么办??请帮帮我。

【问题讨论】:

    标签: .net silverlight ria wcf-ria-services


    【解决方案1】:

    您需要在引用的类上使用 [Include] 属性来表明您希望这些类也被序列化:

    public class Monkey 
    {
       [Key]   
       int number;
       String mystring;
    
       [Include]
       OtherObject anotherobject;
    }
    

    这也可以在代码中完成:

    public IQueryable<Monkey> GetMonkeys()
    {            
       var Monkey = this.Context.Monkey.Include("Monkey.OtherObject");
       return Monkey;
    } 
    

    一些参考资料:

    【讨论】:

    • 不,这行不通,我想通了,但实际上可能会发布您知道的内容??
    • 哦,你是对的。创建 RIA 服务的人发布的参考资料一定是错误的。很高兴你找到了真正的方法。
    • 你能发布你如何让它工作并接受你的答案吗?这样下一个遇到这个问题的人就会知道如何解决它。
    【解决方案2】:

    需要在对象上方做[Include]和[Association],关联参数需要是其他对象的[Key]

    您也可以从服务器发送到客户端,但不能从客户端发送到服务器,这就是 RIA 的工作原理,导致它有点糟糕

    【讨论】:

      【解决方案3】:

      我认为问题在于您必须使 OtherObject 可序列化。其他两个变量是原语,因此它们已经是可序列化的。

      例如:

      [DataContract]
      public abstract class BarrieHibbertWrapper
      {
         [DataMember]
         public string Name { get; set; }
      }
      

      您必须添加System.RunTime.Serialization 作为参考。

      您可能必须对代码中包含的类执行相同的操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多