2012-07-19 15 views
6

メトリックトンのタイプを使用して私のアセンブリに対してsgenを実行します。私はシリアライゼーションから2つのタイプを除外したい。私はそれを行う方法を見つけることができないようです。特定の型をシリアル化から除外する方法は?

sgenには、特定のタイプを指定するには/typeスイッチがありますが、特定のタイプを除外するものはありません。

特定の型をシリアル化から除外する方法はありますか?

+0

おそらく私はあなたの質問を理解できませんでしたが、 'sgen'はシリアライゼーションアセンブリのみを生成します。そこに別の2つのクラスを持つことの問題は何ですか? –

答えて

-3

これを探していても、クラス定義の前に[NonSerialized]と記述することで、独自のクラスをシリアライズから除外できますかどうかはわかりません。 あなたは、あなたがそれを継承して、別のアセンブリで、除外するタイプを入れてから独自のクラス

別に
[NonSerialized] 
public class Point 
{ 
    public int x, y; 
} 
+2

'NonSerialized'属性の唯一のターゲットはフィールドなので、このコードはコンパイルすべきではありません。 – tm1

+1

エラー属性 'NonSerialized'は、この宣言型では無効です。 'field'宣言でのみ有効です。 –

1

を作成する必要があります特定の型を除外したいのであれば、あなたはシリアライザからタイプを除外することはできません世代。

0

クラスをinternalとマークしてXmlシリアル化から除外するクラスのアクセス権を変更すると、sgen.exeはそのクラスをスキップする必要があります。

internal class NotToBeSerialized 
{ 
    ... 
}