Как добавить параметры в сгенерированный метод в Roslyn (Microsoft.CodeAnalysis? - Нужен точный синтаксис
Ниже приведена функция, которую я использую для создания простого метода -
//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());
и вот результат:
public XYZ MapABCToXYZ(fromObject) // Should be 'ABC fromObject'
{
XYZ myObject = new XYZ();
myObject.MyProperty = fromObject.MyProperty;
myObject.TestProperty = fromObject.TestProperty;
return myObject;
}
как вы можете видеть, параметр не является "ABC fromObject", и я пытался выяснить точный синтаксис для правильного добавления параметров.
Я пробовал различные способы выяснить синтаксис параметра и придумал пустой в основном.
редактировать: понял. Просто нужно было внести изменения в следующее строка:
SF.Parameter(SF.Identifier(sourceObjectName)).WithType(SF.ParseTypeName(sourceClass))
1 ответов
Как было предложено, я размещаю здесь -
разобрался. Просто пришлось внести изменения в следующую строку:
SF.Parameter(SF.Identifier(sourceObjectName)).WithType(SF.ParseTypeName(sourceClass))
где 'sourceClass' - строка требуемого типа.