自动更改C#WSDL生成的代码

时间:2014-05-28 15:22:45

标签: c# visual-studio-2012 msbuild code-generation build-process

在Visual Studio中,有没有办法在构建之前或作为构建过程的一部分自动更改源代码并向方法添加特定属性?与代码生成类似,除了我没有生成代码,它已经存在。像T4这样的东西可以处理吗?我不想手动添加这些属性,我希望它是一个自动,可重复的过程。

例如:

public class Test
{
    public void MethodOne()
    {
    }

    public void MethodTwo()
    {
    }
}

自动变为:

public class Test
{
    [CustomAttribute]
    public void MethodOne()
    {
    }

    [CustomAttribute]
    public void MethodTwo()
    {
    }
}

背景

我使用名为Xamarin的第三方产品使用.NET构建Android + iOS应用程序。我正在使用WSDL.exe来使用SOAP Web服务来自动生成代理。我在客户端添加了一个自定义Web服务SOAP扩展,并且我发现连接该自定义扩展的唯一可靠方法是为客户端Web服务中生成的每个Web服务方法添加自定义属性代理。每次更新Web服务代理时都必须重复此过程,因为每次都会生成新的代码。

关于Xamarin限制的夫妻注意事项。我无法访问web.config或app.config文件,这是连接自定义Web服务SOAP扩展的常规方法。 Xamarin不支持web.config或app.config文件。我不能使用像WCF这样的新技术,因为Xamarin并不完全支持它们(支持仍处于测试阶段,而且我遇到了一些阻止我使用它们的错误)

1 个答案:

答案 0 :(得分:1)

我使用你的测试类完成了这个。我在Visual Studio 2010上,但假设它将在2012年运行。

打开“查找/替换”窗口。切换到快速替换选项卡。确保在“查找选项”下选中“使用正则表达式”。

为查找内容输入此内容:

public void Method

输入以下替换为:

[CustomAttribute]\n\tpublic void Method