Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否向方法添加属性而不修改包含该方法的代码文件?_C#_Attributes_Service Reference - Fatal编程技术网

C# 是否向方法添加属性而不修改包含该方法的代码文件?

C# 是否向方法添加属性而不修改包含该方法的代码文件?,c#,attributes,service-reference,C#,Attributes,Service Reference,有没有一种方法可以在不修改类文件的情况下向方法添加属性 例如,我正在导入一个WSDL,它生成一个Reference.cs,其中包含一个带有方法的代理类 我已经编写了一个属性,它对我有一些帮助,并将其添加到方法中,如下所示,所有操作都很好: Reference.cs文件 然而,我的问题是,如果WSDL更改,我将需要更新它,这将自动丢失对Reference.cs的所有更改。我可以从另一个文件将此属性添加到方法中吗?如果您的另一个方法也是字符串,您是否可以将另一个方法连接到此文件中?换句话说,当您调用

有没有一种方法可以在不修改类文件的情况下向方法添加属性

例如,我正在导入一个WSDL,它生成一个Reference.cs,其中包含一个带有方法的代理类

我已经编写了一个属性,它对我有一些帮助,并将其添加到方法中,如下所示,所有操作都很好:

Reference.cs文件
然而,我的问题是,如果WSDL更改,我将需要更新它,这将自动丢失对Reference.cs的所有更改。我可以从另一个文件将此属性添加到方法中吗?

如果您的另一个方法也是字符串,您是否可以将另一个方法连接到此文件中?换句话说,当您调用MyMethod(stringbleh)时,只需向其传递两个连接的字符串

例如: MyMethod(string1+“|”+string2)

这将传递与管道连接的2个参数,然后在您可以使用的方法中

字符串[]vals=val.Split(“|”)

这将为您提供一个传递的参数数组。通过这种方式,还可以传递2个以上的参数

然后您可以获得如下参数:

sting para1=VAL[0];
sting para2=VAL[1]

如果您的另一个方法也是一个字符串,您能否将另一个方法连接到此字符串?换句话说,当您调用MyMethod(stringbleh)时,只需向其传递两个连接的字符串

例如: MyMethod(string1+“|”+string2)

这将传递与管道连接的2个参数,然后在您可以使用的方法中

字符串[]vals=val.Split(“|”)

这将为您提供一个传递的参数数组。通过这种方式,还可以传递2个以上的参数

然后您可以获得如下参数:

sting para1=VAL[0];
sting para2=VAL[1]

一般来说,没有。。。有关属性,请参见。。。有人对
MetadataTypeAttribute
进行了黑客攻击,但只有一些了解它的类才可以使用。我不确定,但您的自定义(稍加修改)T4模板似乎可以帮助您。如果您喜欢痛苦的世界,您可以尝试。一般来说,没有。。。有关属性,请参见。。。有人对
MetadataTypeAttribute
进行了黑客攻击,但只有一些了解它的类才可以使用它。我不确定,但似乎您的自定义(修改了一点)T4模板可以帮助您。如果您喜欢一个痛苦的世界,您可以尝试。Reference.cs是一个自动生成的文件,它是在您导入WSDL时创建的,属性相当复杂,我需要它作为一个属性。然后将其序列化,然后再将其作为字符串传递,并在另一端反序列化。这不是问题的答案questionReference.cs是一个自动生成的文件,它是在导入WSDL时创建的,该属性相当复杂,我需要将其作为属性。然后将其序列化,然后将其作为字符串传递,并在另一端反序列化。这不是问题的答案
public partial class Whatever
{
    [MyCustomAttrubute()]
    public void MyMethod(string bleh)
    {
        // do stuff
        return;
    }
}