1

次の問題を解決するのを手伝ってください。

アセンブリ'mscorlib、Version = 2.0.0.0、Culture = neutral、PublicKeyToken=b77a5c561934e089'に「System.Resources.RuntimeResourceSet」と入力します。シリアル化可能としてマークされていません。

サンプルコード:

[シリアル化可能]
    パブリッククラスclsModelClass
    {{
        プライベートリスト_obj1=new List();
        プライベートリスト_obj2=new List();
        public System.Resources.ResourceManager ResourceManager {get; セットする; }

        public string Property1 {get; セットする; }
        public long Property2 {get; セットする; }
        public string Property3 {get; セットする; }
    }

[シリアル化可能]
    パブリッククラスclsTestClass
    {{
        public static string staticObj1 = "staticObj1";
        public static string staticObj2 = "staticObj2";
        public static string staticObj3 = "staticObj3";
    }

それは理由ですか:

public System.Resources.ResourceManager ResourceManager {get; セットする; }

ResourceManagerクラスはシリアル化されていないため。[nonSerialize]のように使用する必要があります

[非シリアル化]
public System.Resources.ResourceManager ResourceManager {get; セットする; }

前もって感謝します。

4

1 に答える 1

1

はい、シリアル化できないオブジェクトをマークする必要があります。これが役立つ場合があります。

NonSerializedAttribute

編集:さらなる説明:

IFormatter formatter = new BinaryFormatter();             
IFormatter formatter = new SimpleIniFormatter();
FileStream s = new FileStream(fileName, FileMode.Create);
formatter.Serialize(s, line);`

この例では、NonSerialized は、BinaryFormatter が非シリアル化としてマークされたものを無視することを意味します。上記の例を使用して遊んでください。作成されたファイルは一種の読み取り可能です。line は、シリアライズ可能とマークされたオブジェクトです

于 2012-08-29T07:34:16.020 に答える