我使用nrefactory来修改c#代码。我的代码中有各种Web方法。我想在我的c#代码中为每个web方法设计一个另一种方法。
c#文件中的示例输入,原始C#方法:
[WebMethod]
public static MoneyTransfer[] GetCities(int StateID, int countryID)
{
....
....
}
示例输出:
private bool validGetCities(int StateID, int countryID)
{
if (StateID <= 0)
return false;
if (countryID <= 0)
return false;
return true;
}
[WebMethod]
public static MoneyTransfer[] GetCities(int stateID, int countryID)
{
if(validGetCities(stateID, countryID))
{
....
....
}
}
这里,方法validGetCities()将验证所有输入参数不是&lt; = 0 condtion。仅当validGetCities()返回true时才执行webmethod。我可以使用nrefactory编写模式匹配表达式,如下所示,
var expr = new MethodDeclaration
{
Modifiers = Modifiers.Private,
ReturnType = new PrimitiveType("bool"),
Name = "validGetCities",
Body = new BlockStatement{
new ReturnStatement {
Expression = new PrimitiveExpression("true")
}
}
};
此Expression将生成以下代码段
private bool validGetCities()
{
return "true";
}
所以,我可以为0或固定数量的参数生成表达式。如何使其适用于多个输入参数。