什么是选择串行器

时间:2017-02-26 02:23:42

标签: wcf serialization

我正在学习wcf,我看到这个选择并选择退出序列化。我还在挠头。我已经看过this SO post了。但它没有任何帮助。有人可以简洁地解释一下它是什么吗?

1 个答案:

答案 0 :(得分:3)

实际上它很简单: Opt-In方法表示被认为是DataContract一部分的属性必须明确标记,否则将被忽略,而Opt-Out意味着除非明确标记,否则将假定所有属性都是DataContract的一部分。

namespace MySchoolService

    {
                    [DataContract]
                    public class Student
                   {
                           [DataMember]
                           public string StudentNumber;
                           [DataMember]
                           public string FirstName;
                           [DataMember]
                           public string LastName;                     

                          public string MarksObtained;
                   }
                  [ServiceContract]
                   public interface IStudentService
                   {
                              //Service Code Here.
                   }
    }

在上面的代码StudentNumber FirstName中,LastName类的Student属性明确标有DataMember属性,与MarksObtained相对,所以MarksObtained将被忽略。 下面的代码代表了Opt-Out方法的一个例子。

namespace MySchoolService
{
                [Serializable()]
                public class Student
               {
                       public string StudentNumber;
                       public string FirstName;
                       public string LastName;                     
                      [NonSerialized()]
                      public string marksObtained;
               }               
               [ServiceContract]
               public interface IStudentService
               {
                          //Service Code Here.
               }
}

在上面的示例中,我们明确将MarksObtained属性标记为[NonSerialized()]属性,因此除了其他属性外,它将被忽略。 希望可以帮到你。