使用nrefactory在C#中编写webmethod方法

时间:2017-08-30 05:46:09

标签: c# nrefactory

我使用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或固定数量的参数生成表达式。如何使其适用于多个输入参数。

0 个答案:

没有答案