LocalBuilderとは? わかりやすく解説

LocalBuilder クラス

メソッドまたはコンストラクタローカル変数表します

名前空間: System.Reflection.Emit
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<ComVisibleAttribute(True)> _
<ClassInterfaceAttribute(ClassInterfaceType.None)> _
Public NotInheritable Class
 LocalBuilder
    Inherits LocalVariableInfo
    Implements _LocalBuilder
[ComVisibleAttribute(true)] 
[ClassInterfaceAttribute(ClassInterfaceType.None)] 
public sealed class LocalBuilder : LocalVariableInfo,
 _LocalBuilder
[ComVisibleAttribute(true)] 
[ClassInterfaceAttribute(ClassInterfaceType::None)] 
public ref class LocalBuilder sealed : public
 LocalVariableInfo, _LocalBuilder
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.None) */ 
public final class LocalBuilder extends LocalVariableInfo
 implements _LocalBuilder
ComVisibleAttribute(true) 
ClassInterfaceAttribute(ClassInterfaceType.None) 
public final class LocalBuilder extends
 LocalVariableInfo implements _LocalBuilder
解説解説

LocalBuilder オブジェクトは、DeclareLocal メソッド使用して定義できます

使用例使用例

LocalBuilder使用する例を次に示します

Imports System
Imports System.Reflection
Imports System.Reflection.Emit
Imports System.Threading

Class LocalBuilder_Sample

   Public Shared Sub Main()
      Try

         ' Create an assembly.
         Dim myAssemblyName As New
 AssemblyName()
         myAssemblyName.Name = "SampleAssembly"

         Dim myAssembly As AssemblyBuilder
 = Thread.GetDomain().DefineDynamicAssembly _
                                                (myAssemblyName, AssemblyBuilderAccess.Run)

         ' Create a module 'myModule'.
         Dim myModule As ModuleBuilder = myAssembly.DefineDynamicModule("SampleModule",
 True)

         ' Define a public class 'myClass'.
         Dim myTypeBuilder As TypeBuilder =
 myModule.DefineType("myClass", TypeAttributes.Public)

         ' Define a private String field.
         Dim myField As FieldBuilder = myTypeBuilder.DefineField("myMessage",
 GetType(String), _
                                                                        FieldAttributes.Private)

         ' Create the constructor.
         Dim myConstructorArgs As Type() =
 {GetType(String)}
         Dim myConstructor As ConstructorBuilder
 = myTypeBuilder.DefineConstructor _
                           (MethodAttributes.Public, CallingConventions.Standard,
 myConstructorArgs)

         ' Generate IL for the method.
         Dim myConstructorIL As ILGenerator
 = myConstructor.GetILGenerator()
         myConstructorIL.Emit(OpCodes.Ldarg_0)
         Dim mySuperConstructor As ConstructorInfo
 = GetType(Object).GetConstructor(New
 Type() {})
         myConstructorIL.Emit(OpCodes.Call, mySuperConstructor)
         myConstructorIL.Emit(OpCodes.Ldarg_0)
         myConstructorIL.Emit(OpCodes.Ldarg_1)
         myConstructorIL.Emit(OpCodes.Stfld, myField)
         myConstructorIL.Emit(OpCodes.Ret)

         ' Create the 'Function1' public method.
         Dim myMethod As MethodBuilder = myTypeBuilder.DefineMethod("Function1",
 MethodAttributes. _
                                                   Public, GetType(String),
 Nothing)

         ' Generate IL for 'Function1'.
         Dim myMethodIL As ILGenerator = myMethod.GetILGenerator()

         ' Create local variables.
         Dim myLB1 As LocalBuilder = myMethodIL.DeclareLocal(GetType(String))
         myLB1.SetLocalSymInfo("myString")
         Console.WriteLine("'myLB1' type is :{0}", myLB1.LocalType)
         Dim myLB2 As LocalBuilder = myMethodIL.DeclareLocal(GetType(Integer))
         myLB2.SetLocalSymInfo("myInt", 1, 2)
         Console.WriteLine("'myLB2' type is :{0}", myLB2.LocalType)

         myMethodIL.Emit(OpCodes.Ldstr, "Local value"
  )
         myMethodIL.Emit(OpCodes.Stloc_0 )
         myMethodIL.Emit(OpCodes.Ldloc_0 )
         myMethodIL.Emit(OpCodes.Stloc_1)
         myMethodIL.Emit(OpCodes.Ldloc_1 )
         myMethodIL.Emit(OpCodes.Ret )

         ' Create "myClass" class.
         Dim myType1 As Type = myTypeBuilder.CreateType()

         Console.WriteLine("'myClass' is created.")
         ' Create an instance of the 'myClass'.
         Dim myObject1 As Object
 = Activator.CreateInstance(myType1, New Object()
 {"HelloWorld"})

         ' Invoke 'Function1' method of 'myClass'.
         Dim myObject2 As Object
 = myType1.InvokeMember("Function1", BindingFlags.InvokeMethod,
 _
                                                                     Nothing,
 myObject1, Nothing)
         Console.WriteLine("myClass.Function1 is called.")
         Console.WriteLine("myClass.Function1 returned: {0}",
 myObject2)
      Catch e As Exception
         Console.WriteLine("Exception :{0}", e.Message)
      End Try
   End Sub 'Main
End Class 'LocalBuilder_Sample
using System;
using System.Reflection;
using System.Reflection.Emit;
using System.Threading;

class LocalBuilder_Sample
{
   public static void Main()
   {
      try
      {

         // Create an assembly.
         AssemblyName myAssemblyName = new AssemblyName();
         myAssemblyName.Name = "SampleAssembly";

         AssemblyBuilder myAssembly = Thread.GetDomain().DefineDynamicAssembly(
            myAssemblyName, AssemblyBuilderAccess.Run);

         // Create a module 'myModule'.
         ModuleBuilder myModule=myAssembly.DefineDynamicModule("SampleModule"
,true);

         // Define a public class 'myClass'.
         TypeBuilder myTypeBuilder = myModule.DefineType("myClass", TypeAttributes.Public);

         // Define a private String field.
         FieldBuilder myField = myTypeBuilder.DefineField("myMessage",
 typeof(String), FieldAttributes.Private);

         // Create the constructor.
         Type[] myConstructorArgs = { typeof(String) };
         ConstructorBuilder myConstructor = myTypeBuilder.DefineConstructor(
            MethodAttributes.Public, CallingConventions.Standard, myConstructorArgs);

         // Generate IL for the method.
         ILGenerator myConstructorIL = myConstructor.GetILGenerator();
         myConstructorIL.Emit(OpCodes.Ldarg_0);
         ConstructorInfo mySuperConstructor = typeof(Object).GetConstructor(new
 Type[0]);
         myConstructorIL.Emit(OpCodes.Call, mySuperConstructor);
         myConstructorIL.Emit(OpCodes.Ldarg_0);
         myConstructorIL.Emit(OpCodes.Ldarg_1);
         myConstructorIL.Emit(OpCodes.Stfld, myField);
         myConstructorIL.Emit(OpCodes.Ret);

         // Create the 'Function1' public method.
         MethodBuilder myMethod = myTypeBuilder.DefineMethod("Function1"
,
            MethodAttributes.Public, typeof(String), null);

         // Generate IL for 'Function1'.
         ILGenerator myMethodIL = myMethod.GetILGenerator();

         // Create local variables.
         LocalBuilder myLB1 = myMethodIL.DeclareLocal(typeof(string));
         myLB1.SetLocalSymInfo("myString");
         Console.WriteLine("'myLB1' type is :{0}", myLB1.LocalType);
         LocalBuilder myLB2 = myMethodIL.DeclareLocal(typeof(int));
         myLB2.SetLocalSymInfo("myInt",1,2);
         Console.WriteLine("'myLB2' type is :{0}", myLB2.LocalType);
         myMethodIL.Emit(OpCodes.Ldstr, "Local value"  );
         myMethodIL.Emit(OpCodes.Stloc_0 );
         myMethodIL.Emit(OpCodes.Ldloc_0 );
         myMethodIL.Emit(OpCodes.Stloc_1);
         myMethodIL.Emit(OpCodes.Ldloc_1 );
         myMethodIL.Emit(OpCodes.Ret );

         // Create "myClass" class.
         Type myType1 = myTypeBuilder.CreateType();



         Console.WriteLine("'myClass' is created.");
         // Create an instance of the 'myClass'.
         Object myObject1 = Activator.CreateInstance(myType1, new
 Object[] { "HelloWorld" });

         // Invoke 'Function1' method of 'myClass'.
         Object myObject2 = myType1.InvokeMember("Function1", BindingFlags.InvokeMethod,
 null, myObject1, null);
         Console.WriteLine("myClass.Function1 is called.");
         Console.WriteLine("myClass.Function1 returned: {0}", myObject2);
      }
      catch(Exception e)
      {
         Console.WriteLine("Exception :{0}", e.Message );
      }
   }
}
using namespace System;
using namespace System::Reflection;
using namespace System::Reflection::Emit;
using namespace System::Threading;
int main()
{
   try
   {
      // Create an assembly.
      AssemblyName^ myAssemblyName = gcnew AssemblyName;
      myAssemblyName->Name = "SampleAssembly";
      AssemblyBuilder^ myAssembly = Thread::GetDomain()->DefineDynamicAssembly(
 myAssemblyName, AssemblyBuilderAccess::Run );

      // Create a module 'myModule'.
      ModuleBuilder^ myModule = myAssembly->DefineDynamicModule( "SampleModule",
 true );

      // Define a public class 'myClass'.
      TypeBuilder^ myTypeBuilder = myModule->DefineType( "myClass",
 TypeAttributes::Public );

      // Define a private String field.
      FieldBuilder^ myField = myTypeBuilder->DefineField( "myMessage",
 String::typeid, FieldAttributes::Private );

      // Create the constructor.
      array<Type^>^myConstructorArgs = {String::typeid};
      ConstructorBuilder^ myConstructor = myTypeBuilder->DefineConstructor( MethodAttributes::Public,
 CallingConventions::Standard, myConstructorArgs );

      // Generate IL for the method.
      ILGenerator^ myConstructorIL = myConstructor->GetILGenerator();
      myConstructorIL->Emit( OpCodes::Ldarg_0 );
      ConstructorInfo^ mySuperConstructor = Object::typeid->GetConstructor( gcnew
 array<Type^>(0) );
      myConstructorIL->Emit( OpCodes::Call, mySuperConstructor );
      myConstructorIL->Emit( OpCodes::Ldarg_0 );
      myConstructorIL->Emit( OpCodes::Ldarg_1 );
      myConstructorIL->Emit( OpCodes::Stfld, myField );
      myConstructorIL->Emit( OpCodes::Ret );

      // Create the 'Function1' public method.
      MethodBuilder^ myMethod = myTypeBuilder->DefineMethod( "Function1",
 MethodAttributes::Public, String::typeid, nullptr );

      // Generate IL for 'Function1'.
      ILGenerator^ myMethodIL = myMethod->GetILGenerator();

      // Create local variables.
      LocalBuilder^ myLB1 = myMethodIL->DeclareLocal( String::typeid );
      myLB1->SetLocalSymInfo( "myString" );
      Console::WriteLine( "'myLB1' type is :{0}", myLB1->LocalType );
      LocalBuilder^ myLB2 = myMethodIL->DeclareLocal( int::typeid
 );
      myLB2->SetLocalSymInfo( "myInt", 1, 2 );
      Console::WriteLine( "'myLB2' type is :{0}", myLB2->LocalType );
      myMethodIL->Emit( OpCodes::Ldstr, "Local value" );
      myMethodIL->Emit( OpCodes::Stloc_0 );
      myMethodIL->Emit( OpCodes::Ldloc_0 );
      myMethodIL->Emit( OpCodes::Stloc_1 );
      myMethodIL->Emit( OpCodes::Ldloc_1 );
      myMethodIL->Emit( OpCodes::Ret );

      // Create "myClass" class.
      Type^ myType1 = myTypeBuilder->CreateType();
      Console::WriteLine( "'myClass' is created." );

      // Create an instance of the 'myClass'.
      array<Object^>^temp0 = {"HelloWorld"};
      Object^ myObject1 = Activator::CreateInstance( myType1, temp0 );

      // Invoke 'Function1' method of 'myClass'.
      Object^ myObject2 = myType1->InvokeMember( "Function1", BindingFlags::InvokeMethod,
 nullptr, myObject1, nullptr );
      Console::WriteLine( "myClass.Function1 is called." );
      Console::WriteLine( "myClass.Function1 returned: {0}", myObject2
 );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "Exception :{0}", e->Message );
   }
}
継承階層継承階層
System.Object
   System.Reflection.LocalVariableInfo
    System.Reflection.Emit.LocalBuilder
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
LocalBuilder メンバ
System.Reflection.Emit 名前空間

LocalBuilder プロパティ


LocalBuilder メソッド


パブリック メソッドパブリック メソッド

明示的インターフェイスの実装明示的インターフェイス実装
  名前 説明
インターフェイスの明示的な実装 System.Runtime.InteropServices._LocalBuilder.GetIDsOfNames 一連の名前を対応する一連のディスパッチ識別子割り当てます
インターフェイスの明示的な実装 System.Runtime.InteropServices._LocalBuilder.GetTypeInfo オブジェクト型情報取得しますその後は、インターフェイス型情報取得使用できます
インターフェイスの明示的な実装 System.Runtime.InteropServices._LocalBuilder.GetTypeInfoCount オブジェクト提供する型情報インターフェイスの数 (0 または 1) を取得します
インターフェイスの明示的な実装 System.Runtime.InteropServices._LocalBuilder.Invoke オブジェクト公開するプロパティおよびメソッドアクセスできるようにします。
参照参照

関連項目

LocalBuilder クラス
System.Reflection.Emit 名前空間

LocalBuilder メンバ

メソッドまたはコンストラクタローカル変数表します

LocalBuilder データ型公開されるメンバを以下の表に示します


パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
明示的インターフェイスの実装明示的インターフェイス実装
  名前 説明
インターフェイスの明示的な実装 System.Runtime.InteropServices._LocalBuilder.GetIDsOfNames 一連の名前を対応する一連のディスパッチ識別子割り当てます
インターフェイスの明示的な実装 System.Runtime.InteropServices._LocalBuilder.GetTypeInfo オブジェクト型情報取得しますその後は、インターフェイス型情報取得使用できます
インターフェイスの明示的な実装 System.Runtime.InteropServices._LocalBuilder.GetTypeInfoCount オブジェクト提供する型情報インターフェイスの数 (0 または 1) を取得します
インターフェイスの明示的な実装 System.Runtime.InteropServices._LocalBuilder.Invoke オブジェクト公開するプロパティおよびメソッドアクセスできるようにします。
参照参照

関連項目

LocalBuilder クラス
System.Reflection.Emit 名前空間

_LocalBuilder インターフェイス

メモ : このインターフェイスは、.NET Framework version 2.0新しく追加されたものです。

System.Reflection.Emit.LocalBuilder クラスアンマネージ コード公開します

 

名前空間: System.Runtime.InteropServices
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<GuidAttribute("4E6350D1-A08B-3DEC-9A3E-C465F9AEEC0C")>
 _
<ComVisibleAttribute(True)> _
<InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)> _
<CLSCompliantAttribute(False)> _
Public Interface _LocalBuilder
Dim instance As _LocalBuilder
[GuidAttribute("4E6350D1-A08B-3DEC-9A3E-C465F9AEEC0C")] 
[ComVisibleAttribute(true)] 
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)] 
[CLSCompliantAttribute(false)] 
public interface _LocalBuilder
[GuidAttribute(L"4E6350D1-A08B-3DEC-9A3E-C465F9AEEC0C")] 
[ComVisibleAttribute(true)] 
[InterfaceTypeAttribute(ComInterfaceType::InterfaceIsIUnknown)] 
[CLSCompliantAttribute(false)] 
public interface class _LocalBuilder
/** @attribute GuidAttribute("4E6350D1-A08B-3DEC-9A3E-C465F9AEEC0C") */
 
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown) */ 
/** @attribute CLSCompliantAttribute(false) */ 
public interface _LocalBuilder
GuidAttribute("4E6350D1-A08B-3DEC-9A3E-C465F9AEEC0C") 
ComVisibleAttribute(true) 
InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown) 
CLSCompliantAttribute(false) 
public interface _LocalBuilder
解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
_LocalBuilder メンバ
System.Runtime.InteropServices 名前空間

_LocalBuilder メソッド


_LocalBuilder メンバ




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「LocalBuilder」の関連用語

LocalBuilderのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



LocalBuilderのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS