LocalizableAttribute クラス

プロパティをローカライズする必要があるかどうかを指定します。

この型のすべてのメンバの一覧については、LocalizableAttribute メンバ を参照してください。

System.Object
   System.Attribute
      System.ComponentModel.LocalizableAttribute

<AttributeUsage(AttributeTargets.All)>
NotInheritable Public Class LocalizableAttribute   Inherits Attribute
[C#]
[AttributeUsage(AttributeTargets.All)]
public sealed class LocalizableAttribute : Attribute
[C++]
[AttributeUsage(AttributeTargets::All)]
public __gc __sealed class LocalizableAttribute : public Attribute
[JScript]
public
   AttributeUsage(AttributeTargets.All)
class LocalizableAttribute extends Attribute

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

コンポーネントのコードが生成された時点で、値 trueLocalizableAttribute コンストラクタでマークされたメンバのプロパティ値はリソース ファイルに保存されています。これらのリソース ファイルは、コードを変更せずにローカライズできます。

既定では、ローカライズできる属性のないメンバまたは値 falseLocalizableAttribute コンストラクタでマークされたメンバは、そのデータ型で許可されていれば、それぞれのプロパティ値をコードに対して永続化します。それ以外の場合、メイン コンポーネントが Localizable に設定されていれば、すべてのプロパティはリソース ファイルに対して永続化されます。既定値は false です。

メモ   値 trueLocalizableAttribute コンストラクタを使用してプロパティをマークすると、この属性の値は定数メンバ Yes に設定されます。値 falseLocalizableAttribute コンストラクタを使用してマークされているプロパティの場合、値は No になります。したがって、コード内でこの属性の値を確認する場合は、属性を LocalizableAttribute.Yes または LocalizableAttribute.No として指定する必要があります。

詳細については、「 属性の概要 」および「 属性を使用したメタデータの拡張 」を参照してください。

使用例

プロパティをローカライズする必要があるとしてマークする例を次に示します。

 
<Localizable(True)> _
Public Property MyProperty() As Integer
    Get
        ' Insert code here.
        Return 0
    End Get
    Set
        ' Insert code here.
    End Set 
End Property


[C#] 
[Localizable(true)]
 public int MyProperty {
    get {
       // Insert code here.
       return 0;
    }
    set {
       // Insert code here.
    }
 }

[C++] 
public:
    [Localizable(true)]
     __property int get_MyProperty() {
           // Insert code here.
         return 0;
     }
     __property void set_MyProperty( int value ) {
         // Insert code here.
     }
     

MyPropertyLocalizableAttribute の値を確認する方法を次の例に示します。最初に、オブジェクトのすべてのプロパティを保持する PropertyDescriptorCollection を取得します。次に、 PropertyDescriptorCollection から MyProperty を取得します。そして、このプロパティの属性を返し、その属性を属性変数に保存します。

最後に、 myAttributeAttributeCollection にある LocalizableAttribute の値に設定し、プロパティをローカライズする必要があるかどうかを確認します。

 
' Gets the attributes for the property.
Dim attributes As AttributeCollection = TypeDescriptor.GetProperties(Me)("MyProperty").Attributes

' Checks to see if the property needs to be localized.
Dim myAttribute As LocalizableAttribute = CType(attributes(GetType(LocalizableAttribute)), LocalizableAttribute)
If myAttribute.IsLocalizable Then
     ' Insert code here.
End If

[C#] 
// Gets the attributes for the property.
AttributeCollection attributes = 
TypeDescriptor.GetProperties(this)["MyProperty"].Attributes;

// Checks to see if the property needs to be localized.
LocalizableAttribute myAttribute = 
(LocalizableAttribute)attributes[typeof(LocalizableAttribute)];
if(myAttribute.IsLocalizable) {
// Insert code here.
}

[C++] 
// Gets the attributes for the property.
AttributeCollection* attributes = 
    TypeDescriptor::GetProperties(this)->Item[S"MyProperty"]->Attributes;

// Checks to see if the property needs to be localized.
LocalizableAttribute* myAttribute = 
    dynamic_cast<LocalizableAttribute*>(attributes->Item[__typeof(LocalizableAttribute)]);
if(myAttribute->IsLocalizable) {
    // Insert code here.
}

[JScript] 
// Gets the attributes for the property.
var attributes : AttributeCollection = TypeDescriptor.GetProperties(this)["MyProperty"].Attributes

// Checks to see if the property needs to be localized.
var myAttribute : LocalizableAttribute = LocalizableAttribute(attributes(LocalizableAttribute))
if(myAttribute.IsLocalizable){
     // Insert code here.
}

必要条件

名前空間: System.ComponentModel

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System (System.dll 内)

参照

LocalizableAttribute メンバ | System.ComponentModel 名前空間 | Attribute | PropertyDescriptor | AttributeCollection | PropertyDescriptorCollection