C#在运行时使用反射覆盖object.ToString()

时间:2012-01-12 09:14:49

标签: c# .net reflection runtime override

我想使用反射在运行时覆盖struct的object.ToString()? 我需要更改一个结构,添加新的或修改现有的覆盖,在一些我没有代码的.dll中。所以我想在运行时这样做。

有可能吗?这个教程会很棒吗? 如果答案是否则那么:对于班级来说答案是不同的吗?

2 个答案:

答案 0 :(得分:3)

您无法使用反射更改现有类或结构的实现。遗憾。

答案 1 :(得分:2)

使用扩展方法ToStringNew()会不会更容易?

public static class ExtensionMethods
{
    public static string ToStringNew(MyStruct str)
    {
        return ...;
    }
}

我认为这是为...设计的扩展方法。