のプロパティがありList<BaseValidator>
ます。このプロパティをビューステートに保存して、ポストバックに存在させる必要があります。リストがシリアル化できないことを示すエラーが返されます。
私はグーグルで検索しました...そしてグーグルで検索しましたが、まだ機能する答えがありません。
独自のカスタム クラスも作成しましたが、BaseValidator は単純型ではないため、エラーが発生します。
誰でもアイデアはありますか?
のプロパティがありList<BaseValidator>
ます。このプロパティをビューステートに保存して、ポストバックに存在させる必要があります。リストがシリアル化できないことを示すエラーが返されます。
私はグーグルで検索しました...そしてグーグルで検索しましたが、まだ機能する答えがありません。
独自のカスタム クラスも作成しましたが、BaseValidator は単純型ではないため、エラーが発生します。
誰でもアイデアはありますか?
ジェネリック型がシリアライズ可能な場合、リストはシリアライズ可能です。リスト内のジェネリック オブジェクトとサブ オブジェクトをシリアライズ可能にする必要があります。[Serializable]
これらのオブジェクトにタグを追加します。
配列をシリアライズできます。したがって、クラスを編集して、リストの配列プロパティを含めます。Editor browsable を never に設定して、Visual Studio に表示されないようにし、リストを非シリアル化します。
using System;
using System.ComponentModel;
[Serializable]
public class MyClass
{
//property for usage in code. dont serialize
[NonSerialized]
public List<BaseValidator> MyList { get; set; }
// Property for serialization only
[EditorBrowsable(EditorBrowsableState.Never)]
public BaseValidator[] MyArray
{
get
{
return MyList.ToArray();
}
set
{
MyList = new List<BaseValidator>(value);
}
}
}
リストがシリアル化できない場合は、いつでもクラスをマークして、[Serializable]
格納できるようにすることができますViewState