2012-01-12 33 views
0

我想在運行時使用反射重寫object.ToString()結構? 我需要更改一個結構,添加新的或修改現有覆蓋,在一些.dll我沒有代碼。所以我想在運行時做到這一點。C#重寫object.ToString()在運行時使用反射

可能嗎?這個教程會很好嗎? 如果答案是否定的,那麼:對於課堂答案是不同的?

+0

想;知道它,它可以被應用到結構。 – 2012-01-12 09:17:17

+0

爲什麼你需要這樣做? – 2012-01-12 11:05:14

回答

3

您不能使用反射更改現有類或結構的實現。抱歉。

2

使用擴展方法ToStringNew()不是更簡單嗎?

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

我想這就是擴展方法被設計爲...`動態proxies`像`Linfu`或`Castle`雖然我不的

+0

不,我不想添加ToStringNew,我需要更改現有的ToString。 – watbywbarif 2012-01-12 09:25:02

+1

然後你不能。 – 2012-01-12 09:27:56

+0

如果這是類,而不是結構,這個答案會改變嗎? – watbywbarif 2012-01-12 09:29:18