.NETで新しいプロジェクトを開始しています。作成するすべてのライブラリにSecurityTransparentAttribute
が適用されます。SecurityTransparentアセンブリで不変構造体をシリアライズ
これらのアセンブリのうちの1つに、シリアル化が必要な不変の構造体があります。不変オブジェクトとして、任意のプロパティの設定者はありません(System.DateTime
など)。
単に構造体を[Serializable]
とマークすると、プロパティが読み込み専用であるため、何もシリアル化されません。これを処理する通常の方法は、ISerializable
インターフェイスを実装し、GetObjectData
と特別なコンストラクタで処理することです。
この場合、私のアセンブリはセキュリティが透過的で、ISerializable.GetObjectData
はSecurityCritical
です。このようにすることはできません。
ここにはどのようなオプションがありますか?私は本当に重要なものは必要ないので、すべてを持っていたいと思う。SecurityTransparent
これを除いて。
おかげ
アイブ氏は本当にセキュリティと周りにプレイしていないことのためにtype converterを作成するためのルートを下ることができますが、あなたは日時を見ている場合GetObjectDataメソッドは、以下の属性があります[SecurityPermissionAttribute(SecurityAction.LinkDemand、Flags = SecurityPermissionFlag.SerializationFormatter)]あなたがこの状況でお手伝いしますか? – Fen