StringFreezingAttribute クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Deprecated. Ngen.exe (ネイティブ イメージ ジェネレーター)を使用してネイティブ イメージを作成するときに、文字列リテラルを固定します。 このクラスは継承できません。
public ref class StringFreezingAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)]
[System.Serializable]
public sealed class StringFreezingAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)]
public sealed class StringFreezingAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)>]
[<System.Serializable>]
type StringFreezingAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)>]
type StringFreezingAttribute = class
inherit Attribute
Public NotInheritable Class StringFreezingAttribute
Inherits Attribute
- 継承
- 属性
例
次のコード例は、アセンブリに StringFreezingAttribute を適用する方法を示しています。
using System;
using System.Runtime.CompilerServices;
[assembly :StringFreezingAttribute()]
class Program
{
string frozenString = "This is a frozen string after Ngen is run.";
static void Main(string[] args)
{
Console.WriteLine("The StringFreezingAttribute attribute was applied.");
}
}
Imports System.Runtime.CompilerServices
<Assembly: StringFreezingAttribute()>
Module Program
Dim frozenString = "This is a frozen string after Ngen is run."
Sub Main(ByVal args() As String)
Console.WriteLine("The FixedAddressValueTypeAttribute attribute was applied.")
End Sub
End Module
注釈
Note
StringFreezingAttribute クラスは、.NET Framework バージョン 3.5 Service Pack 1 (SP1) 以降のバージョンでは非推奨になりました。
固定文字列は、マネージド ヒープと互換性があり、 Ngen.exe (ネイティブ イメージ ジェネレーター) によってネイティブ イメージにシリアル化された文字列リテラル オブジェクトです。 StringFreezingAttribute属性を使用すると、実行時ではなくネイティブ イメージの生成時に文字列リテラルを事前に割り当てることで、コードを最適化できます。 文字列リテラルが固定された後、コードはネイティブ イメージのアドレスを使用して文字列を参照できます。
StringFreezingAttributeはアセンブリ レベルで適用する必要があります。
共通言語ランタイム (CLR) は、固定された文字列を持つネイティブ イメージをアンロードできないことに注意してください。これは、ヒープ内のオブジェクトが固定文字列を参照している可能性があるためです。 そのため、固定された文字列を含むネイティブ イメージが頻繁に共有されている場合にのみ、 StringFreezingAttribute クラスを使用する必要があります。
コンストラクター
| 名前 | 説明 |
|---|---|
| StringFreezingAttribute() |
StringFreezingAttribute クラスの新しいインスタンスを初期化します。 |
プロパティ
| 名前 | 説明 |
|---|---|
| TypeId |
派生クラスで実装されている場合は、この Attributeの一意の識別子を取得します。 (継承元 Attribute) |
メソッド
| 名前 | 説明 |
|---|---|
| Equals(Object) |
このインスタンスが指定したオブジェクトと等しいかどうかを示す値を返します。 (継承元 Attribute) |
| GetHashCode() |
このインスタンスのハッシュ コードを返します。 (継承元 Attribute) |
| GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
| IsDefaultAttribute() |
派生クラスでオーバーライドされた場合、このインスタンスの値が派生クラスの既定値であるかどうかを示します。 (継承元 Attribute) |
| Match(Object) |
派生クラスでオーバーライドされた場合、このインスタンスが指定したオブジェクトと等しいかどうかを示す値を返します。 (継承元 Attribute) |
| MemberwiseClone() |
現在の Objectの簡易コピーを作成します。 (継承元 Object) |
| ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
一連の名前を対応する一連のディスパッチ識別子に割り当てます。 (継承元 Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
インターフェイスの型情報を取得するために使用できるオブジェクトの型情報を取得します。 (継承元 Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。 (継承元 Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
オブジェクトによって公開されるプロパティとメソッドへのアクセスを提供します。 (継承元 Attribute) |