NonSerializedAttribute クラスとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > NonSerializedAttribute クラスの意味・解説 

NonSerializedAttribute クラス

シリアル化できるクラスフィールドシリアル化しないことを示します。このクラス継承できません。

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<AttributeUsageAttribute(AttributeTargets.Field, Inherited:=False)> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class
 NonSerializedAttribute
    Inherits Attribute
Dim instance As NonSerializedAttribute
[AttributeUsageAttribute(AttributeTargets.Field, Inherited=false)]
 
[ComVisibleAttribute(true)] 
public sealed class NonSerializedAttribute
 : Attribute
[AttributeUsageAttribute(AttributeTargets::Field, Inherited=false)]
 
[ComVisibleAttribute(true)] 
public ref class NonSerializedAttribute sealed
 : public Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Field, Inherited=false)
 */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class NonSerializedAttribute extends
 Attribute
AttributeUsageAttribute(AttributeTargets.Field, Inherited=false)
 
ComVisibleAttribute(true) 
public final class NonSerializedAttribute extends
 Attribute
解説解説

BinaryFormatter クラスまたは SoapFormatter クラス使用してオブジェクトシリアル化する場合は、NonSerializedAttribute 属性使用してフィールドシリアル化されないようにします。たとえば、この属性使用して、重要情報シリアル化されるのを防ぐことができます

NonSerializedAttribute 属性対象オブジェクトは、シリアル化できるクラスパブリック フィールドおよびプライベート フィールドです。既定では、クラスは SerializableAttribute によってマーク付けされていない限りシリアル化できません。シリアル化処理時には既定としてクラスすべてのパブリック フィールドおよびプライベート フィールドシリアル化されますNonSerializedAttribute によってマーク付けされたフィールドは、シリアル化実行時除外されます。XmlSerializer クラス使用してオブジェクトシリアル化する場合は、XmlIgnoreAttribute クラス使用して同じ機能を得ることができますまた、ISerializable インターフェイス実装することにより、シリアル化処理を明示的に制御することもできますISerializable実装しているクラスにも SerializableAttributeマーク付けする必要があります

NonSerializedAttribute クラスイベント適用するには、次の C# コードのように、属性位置フィールド設定します

[field:NonSerializedAttribute()] 
public event ChangedEventHandler Changed;

シリアル化しないフィールドでも、シリアル化後に既定値指定する必要がある場合は、フィールドに値を提供するメソッド作成し、そのメソッドに対して OnDeserializedAttribute を適用できます

属性使用方法については、「属性使用したメタデータ拡張」を参照してください

使用例使用例

SerializableAttribute 属性マーク付けされたオブジェクトシリアル化と、シリアル化されたオブジェクトでの、NonSerializedAttributeマーク付けされたフィールド動作を、次の例に示します

Imports System
Imports System.IO
Imports System.Runtime.Serialization
Imports System.Runtime.Serialization.Formatters.Soap




Public Class Test
   
   Public Shared Sub Main()
      
      ' Creates a new TestSimpleObject object.
      Dim obj As New TestSimpleObject()
      
      Console.WriteLine("Before serialization the object contains:
 ")
      obj.Print()
      
      ' Opens a file and serializes the object into it in binary format.
      Dim stream As Stream = File.Open("data.xml",
 FileMode.Create)
      Dim formatter As New
 SoapFormatter()
      


      formatter.Serialize(stream, obj)
      stream.Close()
      
      ' Empties obj.
      obj = Nothing
      
      ' Opens file "data.xml" and deserializes the object
 from it.
      stream = File.Open("data.xml", FileMode.Open)
      formatter = New SoapFormatter()



      obj = CType(formatter.Deserialize(stream), TestSimpleObject)
      stream.Close()
      
      Console.WriteLine("")
      Console.WriteLine("After deserialization the object contains:
 ")
      obj.Print()

   End Sub 'Main

End Class 'Test


' A test object that needs to be serialized.
<Serializable()> Public Class TestSimpleObject
   
   Public member1 As Integer
   Public member2 As String
   Public member3 As String
   Public member4 As Double
   
   ' A member that is not serialized.
   <NonSerialized()> Public member5 As
 String  
  
   
   Public Sub New()    
 
      member1 = 11
      member2 = "hello"
      member3 = "hello"
      member4 = 3.14159265
      member5 = "hello world!"
   End Sub 'New
      
   
   Public Sub Print()      
      Console.WriteLine("member1 = '{0}'", member1)
      Console.WriteLine("member2 = '{0}'", member2)
      Console.WriteLine("member3 = '{0}'", member3)
      Console.WriteLine("member4 = '{0}'", member4)
      Console.WriteLine("member5 = '{0}'", member5)
   End Sub 'Print

End Class 'TestSimpleObject
using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Soap;
//using System.Runtime.Serialization.Formatters.Binary;

public class Test {
   public static void Main()
  {

      //Creates a new TestSimpleObject object.
      TestSimpleObject obj = new TestSimpleObject();

      Console.WriteLine("Before serialization the object contains: ");
      obj.Print();

      //Opens a file and serializes the object into it in binary format.
      Stream stream = File.Open("data.xml", FileMode.Create);
      SoapFormatter formatter = new SoapFormatter();

      //BinaryFormatter formatter = new BinaryFormatter();

      formatter.Serialize(stream, obj);
      stream.Close();
   
      //Empties obj.
      obj = null;
   
      //Opens file "data.xml" and deserializes the object
 from it.
      stream = File.Open("data.xml", FileMode.Open);
      formatter = new SoapFormatter();

      //formatter = new BinaryFormatter();

      obj = (TestSimpleObject)formatter.Deserialize(stream);
      stream.Close();

      Console.WriteLine("");
      Console.WriteLine("After deserialization the object contains: ");
      obj.Print();
   }
}


// A test object that needs to be serialized.
[Serializable()]        
public class TestSimpleObject  {

    public int member1;
    public string member2;
    public string member3;
    public double member4;
    
    // A field that is not serialized.
    [NonSerialized()] public string member5;
 
    
    public TestSimpleObject() {

        member1 = 11;
        member2 = "hello";
        member3 = "hello";
        member4 = 3.14159265;
        member5 = "hello world!";
    }


    public void Print() {

        Console.WriteLine("member1 = '{0}'", member1);
        Console.WriteLine("member2 = '{0}'", member2);
        Console.WriteLine("member3 = '{0}'", member3);
        Console.WriteLine("member4 = '{0}'", member4);
        Console.WriteLine("member5 = '{0}'", member5);
    }
}
#using <system.dll>
#using <system.messaging.dll>
#using <System.Runtime.Serialization.Formatters.Soap.dll>

using namespace System;
using namespace System::IO;
using namespace System::Runtime::Serialization::Formatters::Soap;

// A test object that needs to be serialized.

[Serializable]
ref class TestSimpleObject
{
private:
   int member1;
   String^ member2;
   String^ member3;
   double member4;

public:

   // A field that is not serialized.

   [NonSerialized]
   String^ member5;
   TestSimpleObject()
   {
      member1 = 11;
      member2 = "hello";
      member3 = "hello";
      member4 = 3.14159265;
      member5 = "hello world!";
   }

   void Print()
   {
      Console::WriteLine( "member1 = ' {0}'", member1 );
      Console::WriteLine( "member2 = ' {0}'", member2 );
      Console::WriteLine( "member3 = ' {0}'", member3 );
      Console::WriteLine( "member4 = ' {0}'", member4 );
      Console::WriteLine( "member5 = ' {0}'", member5 );
   }

};

int main()
{
   
   //Creates a new TestSimpleObject object.
   TestSimpleObject^ obj = gcnew TestSimpleObject;
   Console::WriteLine( "Before serialization the Object* contains: " );
   obj->Print();
   
   //Opens a file and serializes the object into it in binary format.
   Stream^ stream = File::Open( "data.xml", FileMode::Create );
   SoapFormatter^ formatter = gcnew SoapFormatter;
   
   //BinaryFormatter* formatter = new BinaryFormatter();
   formatter->Serialize( stream, obj );
   stream->Close();
   
   //Empties obj.
   obj = nullptr;
   
   //Opens file S"data.xml" and deserializes the object from
 it.
   stream = File::Open( "data.xml", FileMode::Open );
   formatter = gcnew SoapFormatter;
   
   //formatter = new BinaryFormatter();
   obj = dynamic_cast<TestSimpleObject^>(formatter->Deserialize( stream
 ));
   stream->Close();
   Console::WriteLine( "" );
   Console::WriteLine( "After deserialization the object contains: " );
   obj->Print();
}

import System.*;
import System.IO.*;
import System.Runtime.Serialization.*;
import System.Runtime.Serialization.Formatters.Soap.*;
//import System.Runtime.Serialization.Formatters.Binary;

public class Test
{
    public static void main(String[]
 args)
    {        
        //Creates a new TestSimpleObject object.
        TestSimpleObject obj = new TestSimpleObject();
        Console.WriteLine("Before serialization the object contains: ");
        obj.Print();
        //Opens a file and serializes the object into it in binary format.
        Stream stream = File.Open("data.xml", FileMode.Create);
        SoapFormatter formatter = new SoapFormatter();
        //BinaryFormatter formatter = new BinaryFormatter();
        formatter.Serialize(stream, obj);
        stream.Close();
        //Empties obj.
        obj = null;
        //Opens file "data.xml" and deserializes the object
 from it.
        stream = File.Open("data.xml", FileMode.Open);
        formatter = new SoapFormatter();
        //formatter = new BinaryFormatter();
        obj = (TestSimpleObject)(formatter.Deserialize(stream));
        stream.Close();
        Console.WriteLine("");
        Console.WriteLine("After deserialization the object contains: ");
        obj.Print();
    } //main
} //Test

// A test object that needs to be serialized.
/** @attribute Serializable()
 */
public class TestSimpleObject
{
    public int member1;
    public String member2;
    public String member3;
    public double member4;

    // A field that is not serialized.
    /** @attribute NonSerialized()
     */
    public String member5;

    public TestSimpleObject()
    {
        member1 = 11;
        member2 = "hello";
        member3 = "hello";
        member4 = 3.14159265;
        member5 = "hello world!";
    } //TestSimpleObject

    public void Print()
    {
        Console.WriteLine("member1 = '{0}'", (System.Int32)member1);
        Console.WriteLine("member2 = '{0}'", member2);
        Console.WriteLine("member3 = '{0}'", member3);
        Console.WriteLine("member4 = '{0}'", (System.Double)member4);
        Console.WriteLine("member5 = '{0}'", member5);
    } //Print
} //TestSimpleObject
継承階層継承階層
System.Object
   System.Attribute
    System.NonSerializedAttribute
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照


このページでは「.NET Framework クラス ライブラリ リファレンス」からNonSerializedAttribute クラスを検索した結果を表示しています。
Weblioに収録されているすべての辞書からNonSerializedAttribute クラスを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からNonSerializedAttribute クラス を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「NonSerializedAttribute クラス」の関連用語

NonSerializedAttribute クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



NonSerializedAttribute クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS