Nit*_*tor 10 c# code-analysis code-generation roslyn
下面是我用来生成一个简单方法的函数 -
//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());
Run Code Online (Sandbox Code Playgroud)
这是输出:
public XYZ MapABCToXYZ(fromObject) // Should be 'ABC fromObject'
{
XYZ myObject = new XYZ();
myObject.MyProperty = fromObject.MyProperty;
myObject.TestProperty = fromObject.TestProperty;
return myObject;
}
Run Code Online (Sandbox Code Playgroud)
如您所见,参数不是"ABC fromObject",我一直在试图找出正确添加参数的确切语法.
我已经尝试了各种方法来找出参数语法,并且主要是空白.
编辑:想出来.只需在以下行中进行更改:
SF.Parameter(SF.Identifier(sourceObjectName)).WithType(SF.ParseTypeName(sourceClass))
Run Code Online (Sandbox Code Playgroud)
正如所建议的那样,我在这里发布解决方案 -
弄清楚了.只需在以下行中进行更改:
SF.Parameter(SF.Identifier(sourceObjectName)).WithType(SF.ParseTypeName(sourceClass))
Run Code Online (Sandbox Code Playgroud)
其中'sourceClass'是所需类型的字符串.
| 归档时间: |
|
| 查看次数: |
1449 次 |
| 最近记录: |