CSharpCodeProvider.GenerateCodeFromMember メソッド

定義

指定したテキスト ライターおよびコード ジェネレーターのオプションを使用して、指定したクラス メンバーのコードを生成します。

public:
 override void GenerateCodeFromMember(System::CodeDom::CodeTypeMember ^ member, System::IO::TextWriter ^ writer, System::CodeDom::Compiler::CodeGeneratorOptions ^ options);
public override void GenerateCodeFromMember (System.CodeDom.CodeTypeMember member, System.IO.TextWriter writer, System.CodeDom.Compiler.CodeGeneratorOptions options);
override this.GenerateCodeFromMember : System.CodeDom.CodeTypeMember * System.IO.TextWriter * System.CodeDom.Compiler.CodeGeneratorOptions -> unit
Public Overrides Sub GenerateCodeFromMember (member As CodeTypeMember, writer As TextWriter, options As CodeGeneratorOptions)

パラメーター

member
CodeTypeMember

コード生成の対象となる CodeTypeMember

writer
TextWriter

書き込み先の TextWriter

options
CodeGeneratorOptions

コードの生成時に使用する CodeGeneratorOptions

次のコード例は、 メソッドを GenerateCodeFromMember 使用して CodeDOM グラフで使用されるコード フラグメントを作成する方法を示しています。 このコード例は、 クラスの メソッドに対して GenerateCodeFromMember 提供されるより大きな例の CodeDomProvider 一部です。

static void GenCodeFromMember(CodeDomProvider provider, CodeGeneratorOptions options)
{
    options.BracingStyle = "C";
    CodeMemberMethod method1 = new CodeMemberMethod();
    method1.Name = "ReturnString";
    method1.Attributes = MemberAttributes.Public;
    method1.ReturnType = new CodeTypeReference("System.String");
    method1.Parameters.Add(new CodeParameterDeclarationExpression("System.String", "text"));
    method1.Statements.Add(new CodeMethodReturnStatement(new CodeArgumentReferenceExpression("text")));
    StringWriter sw = new StringWriter();
    provider.GenerateCodeFromMember(method1, sw, options);
    snippetMethod = new CodeSnippetTypeMember(sw.ToString());
}
    Shared Sub GenCodeFromMember(ByVal provider As CodeDomProvider, ByVal options As CodeGeneratorOptions) 
        options.BracingStyle = "C"
        Dim method1 As New CodeMemberMethod()
        method1.Name = "ReturnString"
        method1.Attributes = MemberAttributes.Public
        method1.ReturnType = New CodeTypeReference("System.String")
        method1.Parameters.Add(New CodeParameterDeclarationExpression("System.String", "text"))
        method1.Statements.Add(New CodeMethodReturnStatement(New CodeArgumentReferenceExpression("text")))
        Dim sw As New StringWriter()
        provider.GenerateCodeFromMember(method1, sw, options)
        snippetMethod = New CodeSnippetTypeMember(sw.ToString())
    
    End Sub
End Class

注釈

メンバーは、そのコンテキストに応じて異なる方法で生成されます。 たとえば、インターフェイス内のメソッドや列挙型のフィールドは、クラスのメソッドやフィールドとは異なる方法で生成されます。 この実装では、クラス コンテキストでメンバーのコードが生成されます。

適用対象

こちらもご覧ください