2017-02-26 4 views
2

私はwcfを勉強しています。私はこれを選択してシリアライズをオプトアウトしています。私はまだ頭を掻いている。私は既にthis SO postを見ました。しかし、それは役に立たなかった。誰かが私にそれを簡潔に説明することはできますか?シリアライザとは何ですか

答えて

3

オプトインアプローチでは、DataContractの一部と見なされるプロパティは明示的にマークされなければならないと言われていますが、オプトアウトはすべてのプロパティが無視されることを意味します。明示的にマークされていない場合はDataContract。上記のコードStudentNumber

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. 
        } 
    } 

FirstNameStudentクラスのLastNameプロパティはMarksObtainedに反対するとして明示的にDataMember属性でマークされているので、MarksObtainedは無視されます。 以下のコードは、オプトアウトアプローチの例です。

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. 
       } 
} 

は、上記の例では、明示的に[NonSerialized()]属性としてMarksObtainedプロパティをマークし、それは他の人を除いて無視されます。 希望はあなたを助けることができます。

関連する問題