Di seguito è la funzione che sto usando per generare un metodo semplice -Come aggiungere parametri al metodo generato in Roslyn (Microsoft.CodeAnalysis)? - Hai bisogno di sintassi esatta
//NOTE : SF = SyntaxFactory
List<ParameterSyntax> parameterList = new List<ParameterSyntax>
{
SF.Parameter(SF.Identifier(sourceObjectName))
};
// Create method
var method = SF.MethodDeclaration(SF.ParseName(destinationClass), functionName)
.WithBody(SF.Block(nodes))
.AddModifiers(SF.Token(SyntaxKind.PublicKeyword))
.AddParameterListParameters(parameterList.ToArray())
.NormalizeWhitespace();
// NEED TO ADD PARAMS TO CODE
Console.WriteLine(method.GetText());
Ed ecco l'output:
public XYZ MapABCToXYZ(fromObject) // Should be 'ABC fromObject'
{
XYZ myObject = new XYZ();
myObject.MyProperty = fromObject.MyProperty;
myObject.TestProperty = fromObject.TestProperty;
return myObject;
}
Come si può vedere, il parametro non è "ABC fromObject "e ho cercato di capire la sintassi esatta per aggiungere correttamente i parametri.
Ho provato vari modi per capire la sintassi dei parametri e sono venuto in bianco per lo più.
MODIFICA: calcolato. Abbiamo solo dovuto fare un cambiamento nella seguente riga:
SF.Parameter(SF.Identifier(sourceObjectName)).WithType(SF.ParseTypeName(sourceClass))
È necessario pubblicare la soluzione come risposta e quindi accettarla, anziché modificare la domanda. – svick
Oh okay. Lo farà. Non lo sapevo –