Что такое динамические методы и чем DynamicMethod отличается от MethodBuilder?

Я немного сталкивался с динамическими методами в коде C#, основанном на отражении, и мне еще предстоит точно выяснить, что они из себя представляют. В частности, существует класс DynamicMethod, который позволяет генерировать и определять методы CLR во время выполнения. Но есть еще класс MethodBuilder. Они оба, кажется, делают очень похожие вещи. По-видимому, «динамические сборки» — это классы AssemblyBuilder, а «динамические типы» — это классы TypeBuilder. В любом случае все они находятся в пространстве имен System.Reflection.Emit.

MSDN, кажется, имеет очень мало высокоуровневой информации по этому вопросу. Поэтому, если бы кто-нибудь мог объяснить, что такое динамические методы, где именно все классы XYZBuilderвступают в игру и для чего каждый из них используется, было бы здорово. Любые другие типы и функции Reflection.Emit, о которых я должен знать, также будут оценены.

14
задан Noldorin 18 March 2012 в 12:58
поделиться