【发布时间】:2015-06-29 12:54:08
【问题描述】:
下面是我用来生成简单方法的函数-
//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))
【问题讨论】:
-
您应该发布您的解决方案作为答案然后接受它,而不是编辑您的问题。
-
哦,好吧。会这样做。不知道。
标签: c# code-generation code-analysis roslyn