- PR -

JavaのtransientはC#では?

1
投稿者投稿内容
やんたん
ベテラン
会議室デビュー日: 2003/08/18
投稿数: 63
投稿日時: 2003-08-21 21:23
お世話になっております。

オブジェクトをシリアライズできない場合にそのオブジェクトをスキップして
エラーをスローしないようにする修飾子(?)はC#であるのでしょうか。
Javaではtransientだったのですが、C#では何になるのでしょうか

よろしくお願いします。
やんたん
ベテラン
会議室デビュー日: 2003/08/18
投稿数: 63
投稿日時: 2003-08-21 23:17
お疲れ様です。

Java⇔.NETでの同一オブジェクトのマッピングという点で共通なので
同様のスレッドに記述させて頂きますが
PreparedStatementと同等のオブジェクトはADO.NETで
提供されているのでしょうか。
未記入
ベテラン
会議室デビュー日: 2002/09/10
投稿数: 68
投稿日時: 2003-08-22 10:45
> オブジェクトをシリアライズできない場合にそのオブジェクトをスキップして
> エラーをスローしないようにする修飾子(?)はC#であるのでしょうか。

NonSerialized属性かな?
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemnonserializedattributeclasstopic.asp

やんたん
ベテラン
会議室デビュー日: 2003/08/18
投稿数: 63
投稿日時: 2003-08-22 11:13
お返事ありがとうございます。

間違っていたら申し訳ありませんが、このNonSerialized属性は
クラスに設定するものだと理解しました。
私が行いたいのは、クラスをシリアライズ化する際に
クラス内のこのオブジェクトはシリアライズ化する/しない
を切り替えたいと思っております。
そういった事は可能なのでしょうか。

ちなみに「PreparedStatement」に関しては、.NETでは
「Command.Prepare()」が存在しました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-08-22 11:58
引用:

やんたんさんの書き込み (2003-08-22 11:13) より:

私が行いたいのは、クラスをシリアライズ化する際に
クラス内のこのオブジェクトはシリアライズ化する/しない
を切り替えたいと思っております。


 シリアライズする/しないですか?最初のご質問は、クラスのメンバにシリアライズ不可能なクラスが含まれているときに例外をスローさせない、だと理解したのですが。

 ISerializableインタフェースをインプリメントしたならば、GetObjectData()メソッド内でSerializationInfoに追加しなければシリアル化されません。

 XMLシリアライザでシリアル化させないメンバは、System.Xml.Serialization.XmlIgnoreAttribute属性をつけます。

 NonSerialized属性もしかり。参照ページからの引用

 <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

[ メッセージ編集済み 編集者: Jitta 編集日時 2003-08-22 12:01 ]
1

スキルアップ/キャリアアップ(JOB@IT)