属性を作成する
下記に示すような構造体のプロパティに付加する属性 『FixedText』 を作成していきます。
FixedText属性を持った構造体
public struct Todofuken
{
/// <summary>
/// 都道府県コード
/// </summary>
[FixedText(Len = 2, PadChar = '0']
public int Code { set; get; }
/// <summary>
/// 都道府県名
/// </summary>
[FixedText(Len = 10, PadChar = ' ']
public string Name { set; get; }
}
1.まずは System.Attribute を継承したクラスを作成します。ここで作成したクラス名が、属性名となります。
public class FixedTextAttribute : System.Attribute
{
}
クラス名に Attribute を付加した場合、Attributeを除いた属性名も有効になります。
クラス名に Attribute をつけなかった場合、先頭に@をつけた属性名も有効になります。
|
2.作成する属性がプロパティに対する属性であることを指定します。
AttributeUsage属性を用いて、何に対する属性なのかを指定します。
『何に対する』とは、例えば次のようなものがあります。(これら以外にもあります。)
-
クラスに対する属性
-
構造体に対する属性
-
フィールドに対する属性
-
プロパティに対する属性
-
メソッドに対する属性
プロパティの場合は、AttributeUsege 属性に AttributeTargets.Property を指定します。
[AttributeUsage(AttributeTargets.Property)]
public class FixedTextAttribute : System.Attribute
{
}
複数の項目に対する属性であることを示す場合は、| で結合します。
|