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

自动更改C#WSDL生成的代码,c#,visual-studio-2012,msbuild,code-generation,build-process,C#,Visual Studio 2012,Msbuild,Code Generation,Build Process,在VisualStudio中,是否有一种方法可以在构建之前或作为构建过程的一部分自动更改源代码并向方法添加特定属性?与代码生成类似,只是我没有生成代码,它已经存在。像T4这样的东西能处理这个问题吗?我不想手动添加这些属性,我希望它是一个自动的、可重复的过程 例如: public class Test { public void MethodOne() { } public void MethodTwo() { } } 自动成为: public

在VisualStudio中,是否有一种方法可以在构建之前或作为构建过程的一部分自动更改源代码并向方法添加特定属性?与代码生成类似,只是我没有生成代码,它已经存在。像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不完全支持它们(支持仍在测试阶段,我遇到了一些阻止我使用它们的bug)

我使用您的测试类完成了这项工作。我正在使用VisualStudio2010,但假设它将在2012年运行

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

为“查找内容”输入以下内容:

public void Method
输入以下内容以替换为:

[CustomAttribute]\n\tpublic void Method

自动工具如何知道应用哪些属性以及应用这些属性的方法?我假设工具,如果存在的话,必须允许某种类型的“编码”或“脚本”允许我定义它。你的意思是,与使用正则表达式查找/替换完全相同?是的,仅与使用正则表达式查找/替换类似我希望它是自动的。一种方法是在生成事件上执行powershell脚本,该脚本为您查找/替换,虽然这将是非常自定义的项目文件夹和文件结构。这是我目前的做法。我想除了加入PowerShell之外,真的没有更好的选择了,我还没准备好这么做。