プロパティ名の先頭以外にデータ注釈を定義したい。次のようにコードを記述できることを知っています。
public class student
{
[Required]
public string Name {get; set;}
}
しかし、Linq to Sql データ クラスを使用していて、これらのクラスを変更したくありません。データ注釈だけで新しいクラスを定義できることは知っていますが、他に方法があるか知りたいですか? 下手な英語でごめんなさい。
プロパティ名の先頭以外にデータ注釈を定義したい。次のようにコードを記述できることを知っています。
public class student
{
[Required]
public string Name {get; set;}
}
しかし、Linq to Sql データ クラスを使用していて、これらのクラスを変更したくありません。データ注釈だけで新しいクラスを定義できることは知っていますが、他に方法があるか知りたいですか? 下手な英語でごめんなさい。
DataAnnotations
クラスのメンバーを装飾する属性を持つことができます。または、メタデータ バディ クラスに含まれる場合もあります。そのアプローチを説明する記事を次に示します。
しかし、実際のクラスを装飾する必要があるため、MetadataType
Linq-To-Sql を使用してこれを実現できるかどうかはわかりません。
データ注釈を別のファイルに追加する場合:
申し込み開始:
protected void Application_Start()
{
//...
MetadataExtensions.Register();
}
登録:
public static class MetadataExtensions
{
private static void Register(Type type, Type associatedMetadataType)
{
var provider = new AssociatedMetadataTypeTypeDescriptionProvider(type, associatedMetadataType);
TypeDescriptor.AddProviderTransparent(provider, type);
}
public static void Register()
{
Register(typeof(Student), typeof(StudentMetadata));
}
}
このファイルで注釈を指定します (すべてのプロパティを再宣言する必要はありません。注釈付きのプロパティのみです)。
public class StudentMetadata
{
[Required]
public string Name { get; set; }
}