Есть ли способ «переопределить» метод с отражением?

Можно ли динамически изменять код метода в C# без наследования, а только с отражением?

что-то вроде:

nameSpaceA.Foo.method1 = aDelegate;

Я не могу изменить/отредактировать класс Foo.

namespace nameSpaceA
{
  class Foo
  {
       private void method1()
       {
           // ... some Code
       }
  }
}

Моя конечная цель - динамически изменить код:

public static IList<XPathNavigator> EnsureNodeSet(IList<XPathItem> listItems);

В System.Xml.Xsl.Runtime.XslConvert.cs

превратить:

if (!item.IsNode)
    throw new XslTransformException(Res.XPath_NodeSetExpected, string.Empty); 

в:

if (!item.IsNode)
    throw new XslTransformException(Res.XPath_NodeSetExpected, item.value); 
20
задан Christophe Debove 13 March 2012 в 14:30
поделиться