2017-06-01 4 views
3

Ich habe Code geschrieben, der eine neue Klasse in Übereinstimmung mit einem Anfangszustand erzeugt. Roslyn stellt die Klasse SyntaxFactory für sie, aber ich verstehe nicht, wie ein Konstruktor zu erzeugen, indem die Basisklasse aufrufen, wie folgt aus:SyntaxFactory generate Konstruktor mit aufrufendem Basisklassenkonstruktor

public TestClientApi(String entryPoint) : **base(entryPoint)** 
{ 
    _entryPoint = entryPoint; 
} 

https://github.com/ddydeveloper/Roslyn.ApiClient.Codegen

Jede Idee?

Antwort

1

Sie müssen Ihre Konstruktor-Deklaration mit einem Initialisierer erstellen.

ConstructorDeclaration("TestClientApi") 
    .WithInitializer(
     ConstructorInitializer(SyntaxKind.BaseConstructorInitializer) 
       // could be BaseConstructorInitializer or ThisConstructorInitializer 
      .AddArgumentListArguments(
       Argument(IdentifierName("entryPoint")) 
      ) 
    ) 
    ... 
+0

BTW, dies vorausgesetzt, dass Sie eine statische Verwendung im Code-Datei haben: 'statische Microsoft.CodeAnalysis.CSharp.SyntaxFactory verwendet;' –

+0

Dank, es funktioniert wie erwartet! –

Verwandte Themen