<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>.Net Development</title>
        <link>http://geekswithblogs.net/kraki/category/3754.aspx</link>
        <description>.Net Development</description>
        <language>en-US</language>
        <copyright>Rich McColllister</copyright>
        <managingEditor>kraki5525@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>Strongly Typed DynamicMethods</title>
            <link>http://geekswithblogs.net/kraki/archive/2006/03/29/73743.aspx</link>
            <description>&lt;html&gt;
&lt;head&gt;
  &lt;meta content="text/html; charset=ISO-8859-1"
 http-equiv="content-type"&gt;
  &lt;title&gt;&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
Last post I promised that I would post the final code that I was
working on, in regards to Generics and DynamicMethods. &amp;nbsp;The
basic idea of the code is a class that generates DynamicMethod
delegates that have been casted as a certain type of delegate, using
Generics. &amp;nbsp;Here's what I was thinking the calling code would
look like&lt;br&gt;
&lt;div
 style="font-family: monospace; font-size: 10pt; background-color: white;"&gt;&lt;span
 style="color: Teal;"&gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; TestDelegate&lt;/span&gt;&lt;span
 style="color: black;"&gt; del = generator.SomeMethod&amp;lt;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;TestDelegate&lt;/span&gt;&lt;span
 style="color: black;"&gt;&amp;gt;();&lt;br&gt;
&lt;/span&gt;&lt;/div&gt;
Surprisingly, this was a lot hard than it first seems. &amp;nbsp;It
seems that there are some restrictions with Generics and delegates.
&amp;nbsp;First off, you can not use System.Delegate as a limiter for a
Generic type. &amp;nbsp;So you can&amp;nbsp;&lt;span
 style="font-weight: bold;"&gt;not&amp;nbsp;&lt;/span&gt;do the
following :&lt;br&gt;
&lt;div
 style="font-family: monospace; font-size: 10pt; background-color: white;"&gt;&lt;span
 style="color: Blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: rgb(0, 0, 0);"&gt;T&lt;/span&gt;&lt;span
 style="color: black;"&gt; SomeMethod&amp;lt;T&amp;gt;() &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;where&lt;/span&gt;&lt;span
 style="color: black;"&gt; T : System.Delegate&lt;br&gt;
&lt;/span&gt;&lt;/div&gt;
If you try to compile the previous code in some program you get the
following error message: &lt;span style="font-style: italic;"&gt;Constraint
cannot be special class 'System.Delegate'&lt;/span&gt;. &amp;nbsp;Now
DynamicMethod's CreateDelegate will only return an object of&amp;nbsp;
type System.Delegate. &amp;nbsp;That is all and good, but if you are
trying to have type safe delegate, you need to cast that object into
the correct delegate type. &amp;nbsp;But the following code will also
fail:&lt;br&gt;
&lt;div
 style="font-family: monospace; font-size: 10pt; background-color: white;"&gt;&lt;span
 style="color: Blue;"&gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return&lt;/span&gt;&lt;span
 style="color: black;"&gt; (T)dynamicMethod.CreateDelegate(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(T));&lt;br&gt;
&lt;/span&gt;&lt;/div&gt;
That section of code will won't compile and will generate this error: &lt;span
 style="font-style: italic;"&gt;Cannot convert type
'System.Delegate' to 'T'&lt;/span&gt;. &amp;nbsp;It seems that you have
to use the as keyword to do a proper cast.&lt;br&gt;
&lt;div
 style="font-family: monospace; font-size: 10pt; background-color: white;"&gt;&lt;span
 style="color: Blue;"&gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return&lt;/span&gt;&lt;span
 style="color: black;"&gt; dynamicMethod.CreateDelegate(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(T)) &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;as&lt;/span&gt;&lt;span
 style="color: black;"&gt; T;&lt;br&gt;
&lt;/span&gt;&lt;/div&gt;
Now the code won't compile because &lt;span style="font-style: italic;"&gt;The
type parameter 'T' cannot be used with the 'as' operator because it
does not have a class type constraint nor a 'class' constraint&lt;/span&gt;.
&amp;nbsp;So you need to add a class constraint for T like&lt;br&gt;
&lt;div
 style="font-family: monospace; font-size: 10pt; background-color: white;"&gt;&lt;span
 style="color: Blue;"&gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private&lt;/span&gt;&lt;span
 style="color: black;"&gt; T SomeMethod&amp;lt;T&amp;gt;() &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;where&lt;/span&gt;&lt;span
 style="color: black;"&gt; T : &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;class&lt;br&gt;
&lt;/span&gt;&lt;/div&gt;
Now once you set up your code in this way, the code will finally
compile. &amp;nbsp;All this information about using Generics and
delegates in this way comes from &amp;nbsp;Mike Woodring's post &lt;a
 href="http://pluralsight.com/blogs/mike/archive/2005/12/06/17307.aspx"&gt;Constraints
on contraints&lt;/a&gt;, I just applied his knowledge to DynamicMethods.&lt;br&gt;
&lt;br&gt;
Here's the final class&lt;br&gt;
&lt;div
 style="font-family: monospace; font-size: 10pt; background-color: white;"&gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;class&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;MethodGenerator&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;event&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;EventHandler&lt;/span&gt;&lt;span
 style="color: black;"&gt;&amp;lt;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;CreatingMethodBodyEventArgs&lt;/span&gt;&lt;span
 style="color: black;"&gt;&amp;gt; CreatingMethodBody;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; MethodGenerator()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{}&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; &lt;/span&gt;&lt;span
 style="color: Gray;"&gt;&amp;lt;summary&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; Generates a new method with a
signature that matches the signature of the delegate T.&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; &lt;/span&gt;&lt;span
 style="color: Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; &lt;/span&gt;&lt;span
 style="color: Gray;"&gt;&amp;lt;typeparam name="T"&amp;gt;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;The type of the delegate to return and
use as a method signature.&lt;/span&gt;&lt;span style="color: Gray;"&gt;&amp;lt;/typeparam&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; &lt;/span&gt;&lt;span
 style="color: Gray;"&gt;&amp;lt;typeparam name="K"&amp;gt;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;The type of the object with which the
generated method will be associated.&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;&amp;lt;/typeparam&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; &lt;/span&gt;&lt;span
 style="color: Gray;"&gt;&amp;lt;param name="name"&amp;gt;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;The identifying name of the generated
method.&lt;/span&gt;&lt;span style="color: Gray;"&gt;&amp;lt;/param&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; &lt;/span&gt;&lt;span
 style="color: Gray;"&gt;&amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;A delegate of type T which points to
the generated method&lt;/span&gt;&lt;span style="color: Gray;"&gt;&amp;lt;/returns&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; T Generate&amp;lt;T, K&amp;gt;(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;string&lt;/span&gt;&lt;span
 style="color: black;"&gt; name) &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;where&lt;/span&gt;&lt;span
 style="color: black;"&gt; T : &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;class&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;MethodInfo&lt;/span&gt;&lt;span
 style="color: black;"&gt; method = GetMethod(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(T));&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;ParameterInfo&lt;/span&gt;&lt;span
 style="color: black;"&gt;[] parameterDefinitions =
method.GetParameters();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Type&lt;/span&gt;&lt;span
 style="color: black;"&gt;[] parameters = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Type&lt;/span&gt;&lt;span
 style="color: black;"&gt;[parameterDefinitions.Length];&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;for&lt;/span&gt;&lt;span
 style="color: black;"&gt; (&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;int&lt;/span&gt;&lt;span
 style="color: black;"&gt; index = 0; index &amp;lt;
parameterDefinitions.Length; index++)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameters[index]
= parameterDefinitions[index].ParameterType;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;return&lt;/span&gt;&lt;span
 style="color: black;"&gt; (ConstructDynamicMethod(name, method,
&lt;/span&gt;&lt;span style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(T), parameters, &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(K)).CreateDelegate(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(T)) &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;as&lt;/span&gt;&lt;span
 style="color: black;"&gt; T);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; &lt;/span&gt;&lt;span
 style="color: Gray;"&gt;&amp;lt;summary&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; Generates a new method with a
signature that matches the signature of the delegate T.&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; &lt;/span&gt;&lt;span
 style="color: Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; &lt;/span&gt;&lt;span
 style="color: Gray;"&gt;&amp;lt;typeparam name="T"&amp;gt;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;The type of the delegate to return and
use as a method signature.&lt;/span&gt;&lt;span style="color: Gray;"&gt;&amp;lt;/typeparam&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; &lt;/span&gt;&lt;span
 style="color: Gray;"&gt;&amp;lt;typeparam name="K"&amp;gt;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;The type of the object with which the
generated method will be associated.&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;&amp;lt;/typeparam&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; &lt;/span&gt;&lt;span
 style="color: Gray;"&gt;&amp;lt;param name="name"&amp;gt;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;The identifying name of the generated
method.&lt;/span&gt;&lt;span style="color: Gray;"&gt;&amp;lt;/param&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; &lt;/span&gt;&lt;span
 style="color: Gray;"&gt;&amp;lt;param name="instance"&amp;gt;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;The instance of type K to which the
method will be bound.&lt;/span&gt;&lt;span style="color: Gray;"&gt;&amp;lt;/param&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; &lt;/span&gt;&lt;span
 style="color: Gray;"&gt;&amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;A delegate of type T which points to
the generated method&lt;/span&gt;&lt;span style="color: Gray;"&gt;&amp;lt;/returns&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; T Generate&amp;lt;T, K&amp;gt;(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;string&lt;/span&gt;&lt;span
 style="color: black;"&gt; name, K instance) &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;where&lt;/span&gt;&lt;span
 style="color: black;"&gt; T : &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;class&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;MethodInfo&lt;/span&gt;&lt;span
 style="color: black;"&gt; method = GetMethod(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(T));&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;ParameterInfo&lt;/span&gt;&lt;span
 style="color: black;"&gt;[] parameterDefinitions =
method.GetParameters();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Type&lt;/span&gt;&lt;span
 style="color: black;"&gt;[] parameters = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Type&lt;/span&gt;&lt;span
 style="color: black;"&gt;[parameterDefinitions.Length + 1];&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameters[0]
= &lt;/span&gt;&lt;span style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(K);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;for&lt;/span&gt;&lt;span
 style="color: black;"&gt; (&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;int&lt;/span&gt;&lt;span
 style="color: black;"&gt; index = 0; index &amp;lt;
parameterDefinitions.Length; index++)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameters[index
+ 1] = parameterDefinitions[index].ParameterType;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;return&lt;/span&gt;&lt;span
 style="color: black;"&gt; (ConstructDynamicMethod(name, method,
&lt;/span&gt;&lt;span style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(T), parameters, &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(K)).CreateDelegate(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(T), instance) &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;as&lt;/span&gt;&lt;span
 style="color: black;"&gt; T);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;private&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;DynamicMethod&lt;/span&gt;&lt;span
 style="color: black;"&gt; ConstructDynamicMethod(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;string&lt;/span&gt;&lt;span
 style="color: black;"&gt; name, &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;MethodInfo&lt;/span&gt;&lt;span
 style="color: black;"&gt; method, &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Type&lt;/span&gt;&lt;span
 style="color: black;"&gt; delegateType, &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Type&lt;/span&gt;&lt;span
 style="color: black;"&gt;[] parameters, &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Type&lt;/span&gt;&lt;span
 style="color: black;"&gt; ownerType)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;DynamicMethod&lt;/span&gt;&lt;span
 style="color: black;"&gt; dm = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;DynamicMethod&lt;/span&gt;&lt;span
 style="color: black;"&gt;(name, method.ReturnType, parameters,
ownerType);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;ILGenerator&lt;/span&gt;&lt;span
 style="color: black;"&gt; il = dm.GetILGenerator();&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;if&lt;/span&gt;&lt;span
 style="color: black;"&gt; (CreatingMethodBody != &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;null&lt;/span&gt;&lt;span
 style="color: black;"&gt;)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CreatingMethodBody(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;, &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;CreatingMethodBodyEventArgs&lt;/span&gt;&lt;span
 style="color: black;"&gt;(name, delegateType, ownerType, il));&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;else&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;il.Emit(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;OpCodes&lt;/span&gt;&lt;span
 style="color: black;"&gt;.Ret);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;return&lt;/span&gt;&lt;span
 style="color: black;"&gt; dm;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;private&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;MethodInfo&lt;/span&gt;&lt;span
 style="color: black;"&gt; GetMethod(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Type&lt;/span&gt;&lt;span
 style="color: black;"&gt; delegateType)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;if&lt;/span&gt;&lt;span
 style="color: black;"&gt; (!delegateType.IsSubclassOf(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Delegate&lt;/span&gt;&lt;span
 style="color: black;"&gt;)))&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;throw&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;ArgumentException&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Maroon;"&gt;"Type T must be a delegate"&lt;/span&gt;&lt;span
 style="color: black;"&gt;, &lt;/span&gt;&lt;span
 style="color: Maroon;"&gt;"T"&lt;/span&gt;&lt;span
 style="color: black;"&gt;);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;return&lt;/span&gt;&lt;span
 style="color: black;"&gt; delegateType.GetMethod(&lt;/span&gt;&lt;span
 style="color: Maroon;"&gt;"Invoke"&lt;/span&gt;&lt;span
 style="color: black;"&gt;);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;class&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;CreatingMethodBodyEventArgs&lt;/span&gt;&lt;span
 style="color: black;"&gt; : &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;EventArgs&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;private&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;string&lt;/span&gt;&lt;span
 style="color: black;"&gt; _name;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;private&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Type&lt;/span&gt;&lt;span
 style="color: black;"&gt; _delegateType;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;private&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Type&lt;/span&gt;&lt;span
 style="color: black;"&gt; _ownerType;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;private&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;ILGenerator&lt;/span&gt;&lt;span
 style="color: black;"&gt; _generator;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Type&lt;/span&gt;&lt;span
 style="color: black;"&gt; DelegateType&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;get&lt;/span&gt;&lt;span
 style="color: black;"&gt; { &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;return&lt;/span&gt;&lt;span
 style="color: black;"&gt; _delegateType; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;ILGenerator&lt;/span&gt;&lt;span
 style="color: black;"&gt; ILGenerator&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;get&lt;/span&gt;&lt;span
 style="color: black;"&gt; { &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;return&lt;/span&gt;&lt;span
 style="color: black;"&gt; _generator; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Type&lt;/span&gt;&lt;span
 style="color: black;"&gt; OwnerType&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;get&lt;/span&gt;&lt;span
 style="color: black;"&gt; { &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;return&lt;/span&gt;&lt;span
 style="color: black;"&gt; _ownerType; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;string&lt;/span&gt;&lt;span
 style="color: black;"&gt; Name&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;get&lt;/span&gt;&lt;span
 style="color: black;"&gt; { &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;return&lt;/span&gt;&lt;span
 style="color: black;"&gt; _name; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; CreatingMethodBodyEventArgs(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;string&lt;/span&gt;&lt;span
 style="color: black;"&gt; name, &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Type&lt;/span&gt;&lt;span
 style="color: black;"&gt; delegateType, &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Type&lt;/span&gt;&lt;span
 style="color: black;"&gt; ownerType, &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;ILGenerator&lt;/span&gt;&lt;span
 style="color: black;"&gt; ilGenerator)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_name
= name;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_generator
= ilGenerator;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_delegateType
= delegateType;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_ownerType
= ownerType;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;/span&gt;&lt;/div&gt;
In the Generate function the first generic type parameter specifies the
delegate to imitate. &amp;nbsp;The second generic type parameter is the
"owner" of the generated function. &amp;nbsp;The return value will be a
strongly typed delegate (no more Invoke(new object[]... stuff).
&amp;nbsp;When it is time to generate the body of the method, the class
fires off an event (CreateingMethodBody), that allows the caller to
specify the body of the method. &amp;nbsp;Unfortunately you still have
to use the ILGenerator class to generate the method body.
&amp;nbsp;There are still some issues with the above code too.
&amp;nbsp;&lt;br&gt;
&amp;nbsp; 1). &amp;nbsp;If T is a type other than System.Delegate or
subclass, it will throw a runtime error not a compile time error.
&amp;nbsp;This is because there is no way to constraint the type
parameter to only System.Delegate. &amp;nbsp;It just isn't allowed.&lt;br&gt;
&amp;nbsp; 2) &amp;nbsp;If the caller of the class doesn't specify a
method body or specifies an incorrect body (wrong return type,
incorrect code, etc), the error won't be caught until the
CreateDelegate method is called on the DynamicMethod, so runtime again,
not compile time. &lt;br&gt;
&amp;nbsp; 3) &amp;nbsp;I still haven't thought of a good use for it ;)
&amp;nbsp;&lt;br&gt;
&lt;br&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=73743"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=73743" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/kraki/aggbug/73743.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rich McColllister</dc:creator>
            <guid>http://geekswithblogs.net/kraki/archive/2006/03/29/73743.aspx</guid>
            <pubDate>Wed, 29 Mar 2006 18:08:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/kraki/comments/73743.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/kraki/archive/2006/03/29/73743.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/kraki/comments/commentRss/73743.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/kraki/services/trackbacks/73743.aspx</trackback:ping>
        </item>
        <item>
            <title>DynamicMethods and the Importance of Reading Documentation</title>
            <link>http://geekswithblogs.net/kraki/archive/2006/03/17/72654.aspx</link>
            <description>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;meta content="text/html; charset=ISO-8859-1"
 http-equiv="content-type"&gt;
  &lt;title&gt;test&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
Recently I had one of those aggrivating, head pounding, pick up the
monitor and throw it through the window, wall, co-worker, whatever is
closest. &amp;nbsp;The issue involved using DynamicMethods,
CreateDelegate method, and binding the DynamicMethod to an object.
&amp;nbsp;I was working on an experiment with DynamicMethods and
Generics (thats for another post), when I encountered the problem.
&amp;nbsp;Thinking it was some issue to do with the Generics (which
there are a lot), I worked on a test code that had nothing to do with
Generics and still ran into the problem.&lt;br&gt;
&lt;br&gt;
Now according to the .Net documentation the first parameter of the
DynamicMethod, when used in CreateDelegate bound to an object, has to
be the same type as the object &amp;nbsp;to which the method is being
bound. &amp;nbsp;&lt;br&gt;
Parameters for overloaded CreateDelegate method of DynamicMethod:&lt;br&gt;
&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;span style="font-style: italic;"
 class="parameter"&gt;delegateType&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;A delegate type whose
signature matches that of the dynamic method, minus the first parameter.&lt;br&gt;
&lt;br&gt;
&lt;span style="font-style: italic;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;span style="font-style: italic;"
 class="parameter"&gt;target&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;An object the delegate is
bound to. Must be of the same type as the first parameter of the
dynamic method.&lt;br&gt;
&lt;br&gt;
Now here is code similar to what i was working on.&lt;br&gt;
&lt;br&gt;
&lt;div
 style="font-family: monospace; font-size: 10pt; background-color: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span
 style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;delegate&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;void&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;TestingDelegate&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Form&lt;/span&gt;&lt;span
 style="color: black;"&gt; instance, &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;int&lt;/span&gt;&lt;span
 style="color: black;"&gt; value);&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;class&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;BadGenerator&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Delegate&lt;/span&gt;&lt;span
 style="color: black;"&gt; Generate(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Form&lt;/span&gt;&lt;span
 style="color: black;"&gt; instance)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Type&lt;/span&gt;&lt;span
 style="color: black;"&gt;[] parameters = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Type&lt;/span&gt;&lt;span
 style="color: black;"&gt;[2];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameters[0]
= &lt;/span&gt;&lt;span style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Form&lt;/span&gt;&lt;span
 style="color: black;"&gt;);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameters[1]
= &lt;/span&gt;&lt;span style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;int&lt;/span&gt;&lt;span
 style="color: black;"&gt;);&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;DynamicMethod&lt;/span&gt;&lt;span
 style="color: black;"&gt; dm = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;DynamicMethod&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Maroon;"&gt;""&lt;/span&gt;&lt;span
 style="color: black;"&gt;, &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;void&lt;/span&gt;&lt;span
 style="color: black;"&gt;), parameters, &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Form&lt;/span&gt;&lt;span
 style="color: black;"&gt;));&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;ILGenerator&lt;/span&gt;&lt;span
 style="color: black;"&gt; il = dm.GetILGenerator();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;il.Emit(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;OpCodes&lt;/span&gt;&lt;span
 style="color: black;"&gt;.Ret);&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;return&lt;/span&gt;&lt;span
 style="color: black;"&gt; dm.CreateDelegate(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;TestingDelegate&lt;/span&gt;&lt;span
 style="color: black;"&gt;), instance);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/span&gt;&lt;/div&gt;
Now I imagine that some of the more observent of you have already
noticed my simple but stupid mistake. &amp;nbsp;Whenever I ran ithis
code, it
would throw an exception when it tries to execute the CreateDelegate
function. &amp;nbsp;It would always throw System.ArgumentException
"Error
binding to target method." &amp;nbsp;Not exactly the most descriptive
error
message. &amp;nbsp;I tiried lots of things to get it to work, even used
Reflector to trace the calls (no luck, it ends up calling some Win32
APIs). &amp;nbsp;I spent too much time trying to figure this problem
out,
without any luck. &amp;nbsp;Then I happened to be rereading the
documentation,
for the tenth time it seemed, when I saw this in the Remarks about the
CreateDelegate function:&lt;br&gt;
&lt;br&gt;
&lt;div style="margin-left: 40px;"&gt;&lt;span
 style="color: black;"&gt;This method overload requires target
to be of the same type as the first parameter of the dynamic method, or
to be assignable to that type (for example, a derived class). &lt;span
 style="font-weight: bold;"&gt;The signature of delegateType has
all the parameters of the dynamic method except the first.&lt;/span&gt;
For example, if the dynamic method has the parameters String, Int32,
and Byte, then delegateType has the parameters Int32 and Byte; target
is of type String.&lt;/span&gt;&lt;br&gt;
&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style="color: black;"&gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;I've
bolded the most important sentence. &amp;nbsp;When I read that, I
felt like an idiot, a very very very big idiot.&lt;br&gt;
The corrected code would be:&lt;br&gt;
&lt;br&gt;
&lt;div
 style="font-family: monospace; font-size: 10pt; background-color: white;"&gt;&lt;span
 style="font-weight: bold;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;delegate&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;void&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;TestingDelegate&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;int&lt;/span&gt;&lt;span
 style="color: black;"&gt; value);&lt;/span&gt;&lt;span
 style="color: black;"&gt;&lt;span
 style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;class&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;BadGenerator&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Delegate&lt;/span&gt;&lt;span
 style="color: black;"&gt; Generate(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Form&lt;/span&gt;&lt;span
 style="color: black;"&gt; instance)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Type&lt;/span&gt;&lt;span
 style="color: black;"&gt;[] parameters = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Type&lt;/span&gt;&lt;span
 style="color: black;"&gt;[2];&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameters[0]
= &lt;/span&gt;&lt;span style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Form&lt;/span&gt;&lt;span
 style="color: black;"&gt;);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;parameters[1]
= &lt;/span&gt;&lt;span style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;int&lt;/span&gt;&lt;span
 style="color: black;"&gt;);&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;DynamicMethod&lt;/span&gt;&lt;span
 style="color: black;"&gt; dm = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;DynamicMethod&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Maroon;"&gt;""&lt;/span&gt;&lt;span
 style="color: black;"&gt;, &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;void&lt;/span&gt;&lt;span
 style="color: black;"&gt;), parameters, &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Form&lt;/span&gt;&lt;span
 style="color: black;"&gt;));&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;ILGenerator&lt;/span&gt;&lt;span
 style="color: black;"&gt; il = dm.GetILGenerator();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;il.Emit(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;OpCodes&lt;/span&gt;&lt;span
 style="color: black;"&gt;.Ret);&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;return&lt;/span&gt;&lt;span
 style="color: black;"&gt; dm.CreateDelegate(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;TestingDelegate&lt;/span&gt;&lt;span
 style="color: black;"&gt;), instance);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;
&lt;/div&gt;
&lt;br&gt;
I had to change the delegate from ( &lt;span style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;delegate&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;void&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;TestingDelegate&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Form&lt;/span&gt;&lt;span
 style="color: black;"&gt; instance, &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;int&lt;/span&gt;&lt;span
 style="color: black;"&gt; value); )&lt;/span&gt; to ( &lt;span
 style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;delegate&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;void&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;TestingDelegate&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;int&lt;/span&gt;&lt;span
 style="color: black;"&gt; value); ), &lt;/span&gt;because a
DynamicMethod bound to an object always takes one more parameter than
the delegate it is referencing. &amp;nbsp;The other solution would be
to define another parameter for the DynamicMethod, so the parameter
list would be (Form, Form, int).&lt;br&gt;
&lt;br&gt;
So what is the moral of the story:&lt;br&gt;
&lt;br&gt;
Always Read The Documentation, &lt;span style="font-weight: bold;"&gt;Completely.&lt;/span&gt;&lt;br&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=72654"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=72654" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/kraki/aggbug/72654.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rich McColllister</dc:creator>
            <guid>http://geekswithblogs.net/kraki/archive/2006/03/17/72654.aspx</guid>
            <pubDate>Fri, 17 Mar 2006 19:18:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/kraki/comments/72654.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/kraki/archive/2006/03/17/72654.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/kraki/comments/commentRss/72654.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/kraki/services/trackbacks/72654.aspx</trackback:ping>
        </item>
        <item>
            <title>TestDriven.Net, now with Free Code Coverage</title>
            <link>http://geekswithblogs.net/kraki/archive/2006/01/30/67618.aspx</link>
            <description>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;meta content="text/html; charset=ISO-8859-1"
 http-equiv="content-type"&gt;
  &lt;title&gt;&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
The TestDriven.net vs addin now has code coverage for all of us that
can't afford Team Suite. &amp;nbsp;The addin now plays nicely with the
open source code coverage tool&amp;nbsp;&lt;a href="http://ncover.org/"&gt;NCover&lt;/a&gt;.
&amp;nbsp;For those of you who don't know what TestDriven.Net is, its a
addin for Visual Studio that allows you to run your unit test directly
from the IDE. &amp;nbsp;It supports NUnit, MbUnit, and even Team Suite
Tests. &amp;nbsp;And the best feature is that you can even debug your
unit tests. &amp;nbsp;Jamie just keeps making TestDriven.Net better and
better. &amp;nbsp;If you don't have it yet, go get&amp;nbsp;&lt;a
 href="http://www.testdriven.net/Default.aspx?tabid=27"&gt;it&lt;/a&gt;.&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Original Article: &lt;a
 href="http://weblogs.asp.net/nunitaddin/archive/2006/01/30/436896.aspx"&gt;Code
Coverage for The People!&lt;/a&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=67618"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=67618" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/kraki/aggbug/67618.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rich McColllister</dc:creator>
            <guid>http://geekswithblogs.net/kraki/archive/2006/01/30/67618.aspx</guid>
            <pubDate>Mon, 30 Jan 2006 18:16:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/kraki/comments/67618.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/kraki/archive/2006/01/30/67618.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/kraki/comments/commentRss/67618.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/kraki/services/trackbacks/67618.aspx</trackback:ping>
        </item>
        <item>
            <title>DynamicMethod - New .Net 2.0 Feature</title>
            <link>http://geekswithblogs.net/kraki/archive/2006/01/30/67604.aspx</link>
            <description>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;meta content="text/html; charset=ISO-8859-1"
 http-equiv="content-type"&gt;
  &lt;title&gt;&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
I've been reading about one of the obscure new features of .Net 2.0
called DynamicMethods. &amp;nbsp;Part of the System.Reflection.Emit
namespace, the DynamicMethod class allows you to create and execute
methods at runtime&amp;nbsp;&lt;span style="font-weight: bold;"&gt;without&lt;/span&gt;
creating any dynamic assembly or dynamic type.&lt;br&gt;
&lt;br&gt;
This by itself sounds interesting, but not very useful.
&amp;nbsp;I mean how often do you have the need to dynamic generate
methods? &amp;nbsp;Except for certain situations, not very often if at
all. &amp;nbsp;But DynamicMethods have one other interesting feature.
If the DynamicMethod is bound to a particular Type, then the generated
method has access to the private members of that type.&lt;br&gt;
&lt;br&gt;
Here's a small example (important code only):&lt;br&gt;
&lt;br&gt;
&lt;div
 style="font-family: monospace; font-size: 9pt; background-color: white;"&gt;
&lt;span style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;partial&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;class&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Form1&lt;/span&gt;&lt;span
 style="color: black;"&gt; : &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Form&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;DynamicMethod&lt;/span&gt;&lt;span
 style="color: black;"&gt; _dMethod;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; Form1()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InitializeComponent();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_dMethod
= CreateDynamicMethod();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;private&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;DynamicMethod&lt;/span&gt;&lt;span
 style="color: black;"&gt; CreateDynamicMethod()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;DynamicMethod&lt;/span&gt;&lt;span
 style="color: black;"&gt; dmethod = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;DynamicMethod&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Maroon;"&gt;""&lt;/span&gt;&lt;span
 style="color: black;"&gt;, &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;int&lt;/span&gt;&lt;span
 style="color: black;"&gt;), &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Type&lt;/span&gt;&lt;span
 style="color: black;"&gt;[] { &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;TextBoxBase&lt;/span&gt;&lt;span
 style="color: black;"&gt;) }, &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;TextBoxBase&lt;/span&gt;&lt;span
 style="color: black;"&gt;));&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;ILGenerator&lt;/span&gt;&lt;span
 style="color: black;"&gt; igen = dmethod.GetILGenerator();&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;FieldInfo&lt;/span&gt;&lt;span
 style="color: black;"&gt; field = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;TextBoxBase&lt;/span&gt;&lt;span
 style="color: black;"&gt;).GetField(&lt;/span&gt;&lt;span
 style="color: Maroon;"&gt;"maxLength"&lt;/span&gt;&lt;span
 style="color: black;"&gt;, &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;BindingFlags&lt;/span&gt;&lt;span
 style="color: black;"&gt;.NonPublic | &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;BindingFlags&lt;/span&gt;&lt;span
 style="color: black;"&gt;.Instance);&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;igen.Emit(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;OpCodes&lt;/span&gt;&lt;span
 style="color: black;"&gt;.Ldarg_0);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;igen.Emit(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;OpCodes&lt;/span&gt;&lt;span
 style="color: black;"&gt;.Ldfld, field);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;igen.Emit(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;OpCodes&lt;/span&gt;&lt;span
 style="color: black;"&gt;.Ret);&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;return&lt;/span&gt;&lt;span
 style="color: black;"&gt; dmethod;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;private&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;void&lt;/span&gt;&lt;span
 style="color: black;"&gt; button1_Click(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;object&lt;/span&gt;&lt;span
 style="color: black;"&gt; sender, &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;EventArgs&lt;/span&gt;&lt;span
 style="color: black;"&gt; e)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Random&lt;/span&gt;&lt;span
 style="color: black;"&gt; r = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Random&lt;/span&gt;&lt;span
 style="color: black;"&gt;();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;textBox1.MaxLength
= r.Next(1, 4096);&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;label1.Text
= &lt;/span&gt;&lt;span style="color: Maroon;"&gt;"Max Length =
"&lt;/span&gt;&lt;span style="color: black;"&gt; +
textBox1.MaxLength.ToString();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;private&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;void&lt;/span&gt;&lt;span
 style="color: black;"&gt; button2_Click(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;object&lt;/span&gt;&lt;span
 style="color: black;"&gt; sender, &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;EventArgs&lt;/span&gt;&lt;span
 style="color: black;"&gt; e)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;MessageBox&lt;/span&gt;&lt;span
 style="color: black;"&gt;.Show(&lt;/span&gt;&lt;span
 style="color: Maroon;"&gt;"Max Length = "&lt;/span&gt;&lt;span
 style="color: black;"&gt; + ((&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;int&lt;/span&gt;&lt;span
 style="color: black;"&gt;)_dMethod.Invoke(textBox1, &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;object&lt;/span&gt;&lt;span
 style="color: black;"&gt;[] { textBox1 })).ToString());&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;br&gt;
This is a simple Windows Application that contains one TextBox, one
Label, and two Buttons. &amp;nbsp;The first button (button2) sets the
MaxLength property of the TextBox to a random number between 1 and 4096
and sets the Label's Text property to that value. &amp;nbsp;Then second
button executes the generated function that was generated at the form's
creation and shows the returned value in a MessageBox. &amp;nbsp;Now
note what the generated function is doing, specifically this line:&lt;br&gt;
&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; FieldInfo&lt;/span&gt;&lt;span
 style="color: black;"&gt; field = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;TextBoxBase&lt;/span&gt;&lt;span
 style="color: black;"&gt;).GetField(&lt;/span&gt;&lt;span
 style="color: Maroon;"&gt;"maxLength"&lt;/span&gt;&lt;span
 style="color: black;"&gt;, &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;BindingFlags&lt;/span&gt;&lt;span
 style="color: black;"&gt;.NonPublic | &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;BindingFlags&lt;/span&gt;&lt;span
 style="color: black;"&gt;.Instance);&lt;br&gt;
&lt;br&gt;
The function is using a private instance field called maxLength, which
belongs to the abstract class TextBoxBase (I used Lutz'a&amp;nbsp;&lt;a
 href="http://www.aisto.com/roeder/dotnet/"&gt;Reflector&lt;/a&gt;
to find out what the name of the field was). &amp;nbsp;The function
then just returns the value of the field. &amp;nbsp;So the generated
function was able to access the pri&lt;/span&gt;vate instance field for
the abstract parent of the TextBox object.&lt;br&gt;
&lt;br&gt;
There are two drawbacks with these DynamicMethods when compared to the
Extension Methods of C# 3.0.&lt;br&gt;
&lt;br&gt;
1) &amp;nbsp;You must have a reference to the created DynamicMethod
object or the delegate created by the DynamicMethod's CreateDelegate
function.&lt;br&gt;
2) &amp;nbsp;You have to use IL OpCodes to generate the body of your
runtime function.&lt;br&gt;
&lt;br&gt;
Now I have to think up some practical examples (not counting dynamic
delegates for events).&lt;br&gt;
&lt;br&gt;
Some interesting links:&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a
 href="http://blogs.msdn.com/haibo_luo/archive/2005/10/25/484861.aspx"&gt;DebuggerVisualizer
for DynamicMethod (Show me the IL)&lt;/a&gt;&lt;br&gt;
&amp;nbsp; &amp;nbsp; &lt;a
 href="http://msdn2.microsoft.com/ms228976.aspx#procedureSection1"&gt;To
generate an event handler at run time by using a dynamic method&lt;/a&gt;&lt;br&gt;
&amp;nbsp; &amp;nbsp; &lt;a
 href="http://www.codeproject.com/csharp/DynamicMethodDelegates.asp"&gt;Fast
late-bound invocation through DynamicMethod delegates&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Here's the full code from the example above:&lt;br&gt;
&lt;span style="color: Maroon;"&gt;&lt;/span&gt;
&lt;div
 style="font-family: monospace; font-size: 9pt; background-color: white;"&gt;&lt;span
 style="color: Blue;"&gt;&lt;br&gt;
using&lt;/span&gt;&lt;span style="color: black;"&gt; System;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: Blue;"&gt;using&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Collections.Generic;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: Blue;"&gt;using&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.ComponentModel;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: Blue;"&gt;using&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Data;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: Blue;"&gt;using&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Drawing;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: Blue;"&gt;using&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Reflection;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: Blue;"&gt;using&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Reflection.Emit;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: Blue;"&gt;using&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Text;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: Blue;"&gt;using&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Windows.Forms;&lt;br&gt;
&lt;br&gt;
&lt;/span&gt;&lt;span style="color: Blue;"&gt;namespace&lt;/span&gt;&lt;span
 style="color: black;"&gt; DynamicMethodTest&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;partial&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;class&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Form1&lt;/span&gt;&lt;span
 style="color: black;"&gt; : &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Form&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;DynamicMethod&lt;/span&gt;&lt;span
 style="color: black;"&gt; _dMethod;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;public&lt;/span&gt;&lt;span
 style="color: black;"&gt; Form1()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InitializeComponent();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_dMethod
= CreateDynamicMethod();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;private&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;DynamicMethod&lt;/span&gt;&lt;span
 style="color: black;"&gt; CreateDynamicMethod()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;DynamicMethod&lt;/span&gt;&lt;span
 style="color: black;"&gt; dmethod = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;DynamicMethod&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Maroon;"&gt;"Hello"&lt;/span&gt;&lt;span
 style="color: black;"&gt;, &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;int&lt;/span&gt;&lt;span
 style="color: black;"&gt;), &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Type&lt;/span&gt;&lt;span
 style="color: black;"&gt;[] { &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;TextBoxBase&lt;/span&gt;&lt;span
 style="color: black;"&gt;) }, &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;TextBoxBase&lt;/span&gt;&lt;span
 style="color: black;"&gt;));&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;ILGenerator&lt;/span&gt;&lt;span
 style="color: black;"&gt; igen = dmethod.GetILGenerator();&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;FieldInfo&lt;/span&gt;&lt;span
 style="color: black;"&gt; field = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;typeof&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;TextBoxBase&lt;/span&gt;&lt;span
 style="color: black;"&gt;).GetField(&lt;/span&gt;&lt;span
 style="color: Maroon;"&gt;"maxLength"&lt;/span&gt;&lt;span
 style="color: black;"&gt;, &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;BindingFlags&lt;/span&gt;&lt;span
 style="color: black;"&gt;.NonPublic | &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;BindingFlags&lt;/span&gt;&lt;span
 style="color: black;"&gt;.Instance);&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;igen.Emit(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;OpCodes&lt;/span&gt;&lt;span
 style="color: black;"&gt;.Ldarg_0);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;igen.Emit(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;OpCodes&lt;/span&gt;&lt;span
 style="color: black;"&gt;.Ldfld, field);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;igen.Emit(&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;OpCodes&lt;/span&gt;&lt;span
 style="color: black;"&gt;.Ret);&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;return&lt;/span&gt;&lt;span
 style="color: black;"&gt; dmethod;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;private&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;void&lt;/span&gt;&lt;span
 style="color: black;"&gt; button1_Click(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;object&lt;/span&gt;&lt;span
 style="color: black;"&gt; sender, &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;EventArgs&lt;/span&gt;&lt;span
 style="color: black;"&gt; e)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Random&lt;/span&gt;&lt;span
 style="color: black;"&gt; r = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Random&lt;/span&gt;&lt;span
 style="color: black;"&gt;();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;textBox1.MaxLength
= r.Next(1, 4096);&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;label1.Text
= &lt;/span&gt;&lt;span style="color: Maroon;"&gt;"Max Length =
"&lt;/span&gt;&lt;span style="color: black;"&gt; +
textBox1.MaxLength.ToString();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;private&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;void&lt;/span&gt;&lt;span
 style="color: black;"&gt; button2_Click(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;object&lt;/span&gt;&lt;span
 style="color: black;"&gt; sender, &lt;/span&gt;&lt;span
 style="color: Teal;"&gt;EventArgs&lt;/span&gt;&lt;span
 style="color: black;"&gt; e)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;MessageBox&lt;/span&gt;&lt;span
 style="color: black;"&gt;.Show(&lt;/span&gt;&lt;span
 style="color: Maroon;"&gt;"Max Length = "&lt;/span&gt;&lt;span
 style="color: black;"&gt; + ((&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;int&lt;/span&gt;&lt;span
 style="color: black;"&gt;)_dMethod.Invoke(textBox1, &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;object&lt;/span&gt;&lt;span
 style="color: black;"&gt;[] { textBox1 })).ToString());&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; &lt;/span&gt;&lt;span
 style="color: Gray;"&gt;&amp;lt;summary&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; Required designer variable.&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; &lt;/span&gt;&lt;span
 style="color: Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;private&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.ComponentModel.&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;IContainer&lt;/span&gt;&lt;span
 style="color: black;"&gt; components = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;null&lt;/span&gt;&lt;span
 style="color: black;"&gt;;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; &lt;/span&gt;&lt;span
 style="color: Gray;"&gt;&amp;lt;summary&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; Clean up any resources being used.&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; &lt;/span&gt;&lt;span
 style="color: Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; &lt;/span&gt;&lt;span
 style="color: Gray;"&gt;&amp;lt;param name="disposing"&amp;gt;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;true if managed resources should be
disposed; otherwise, false.&lt;/span&gt;&lt;span style="color: Gray;"&gt;&amp;lt;/param&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;protected&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;override&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;void&lt;/span&gt;&lt;span
 style="color: black;"&gt; Dispose(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;bool&lt;/span&gt;&lt;span
 style="color: black;"&gt; disposing)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;if&lt;/span&gt;&lt;span
 style="color: black;"&gt; (disposing &amp;amp;&amp;amp;
(components != &lt;/span&gt;&lt;span style="color: Blue;"&gt;null&lt;/span&gt;&lt;span
 style="color: black;"&gt;))&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;components.Dispose();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;base&lt;/span&gt;&lt;span
 style="color: black;"&gt;.Dispose(disposing);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&lt;/span&gt;&lt;span style="color: Blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#region&lt;/span&gt;&lt;span
 style="color: black;"&gt; Windows Form Designer generated code&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; &lt;/span&gt;&lt;span
 style="color: Gray;"&gt;&amp;lt;summary&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; Required method for Designer support
- do not modify&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; the contents of this method with the
code editor.&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Gray;"&gt;///&lt;/span&gt;&lt;span
 style="color: Green;"&gt; &lt;/span&gt;&lt;span
 style="color: Gray;"&gt;&amp;lt;/summary&amp;gt;&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;private&lt;/span&gt;&lt;span
 style="color: black;"&gt; &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;void&lt;/span&gt;&lt;span
 style="color: black;"&gt; InitializeComponent()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.textBox1 = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Windows.Forms.&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;TextBox&lt;/span&gt;&lt;span
 style="color: black;"&gt;();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.button1 = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Windows.Forms.&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Button&lt;/span&gt;&lt;span
 style="color: black;"&gt;();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.button2 = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Windows.Forms.&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Button&lt;/span&gt;&lt;span
 style="color: black;"&gt;();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.label1 = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Windows.Forms.&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Label&lt;/span&gt;&lt;span
 style="color: black;"&gt;();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.SuspendLayout();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;// &lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;// textBox1&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;// &lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.textBox1.Location = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Drawing.&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Point&lt;/span&gt;&lt;span
 style="color: black;"&gt;(13, 13);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.textBox1.Name = &lt;/span&gt;&lt;span
 style="color: Maroon;"&gt;"textBox1"&lt;/span&gt;&lt;span
 style="color: black;"&gt;;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.textBox1.Size = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Drawing.&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Size&lt;/span&gt;&lt;span
 style="color: black;"&gt;(100, 20);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.textBox1.TabIndex = 0;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;// &lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;// button2&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;// &lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.button2.Location = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Drawing.&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Point&lt;/span&gt;&lt;span
 style="color: black;"&gt;(205, 9);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.button2.Name = &lt;/span&gt;&lt;span
 style="color: Maroon;"&gt;"button1"&lt;/span&gt;&lt;span
 style="color: black;"&gt;;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.button2.Size = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Drawing.&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Size&lt;/span&gt;&lt;span
 style="color: black;"&gt;(75, 23);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.button2.TabIndex = 1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.button2.Text = &lt;/span&gt;&lt;span
 style="color: Maroon;"&gt;"Execute"&lt;/span&gt;&lt;span
 style="color: black;"&gt;;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.button2.UseVisualStyleBackColor = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;true&lt;/span&gt;&lt;span
 style="color: black;"&gt;;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.button2.Click += &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;EventHandler&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.button2_Click);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;// &lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;// button1&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;// &lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.button1.Location = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Drawing.&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Point&lt;/span&gt;&lt;span
 style="color: black;"&gt;(205, 39);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.button1.Name = &lt;/span&gt;&lt;span
 style="color: Maroon;"&gt;"button2"&lt;/span&gt;&lt;span
 style="color: black;"&gt;;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.button1.Size = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Drawing.&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Size&lt;/span&gt;&lt;span
 style="color: black;"&gt;(75, 23);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.button1.TabIndex = 2;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.button1.Text = &lt;/span&gt;&lt;span
 style="color: Maroon;"&gt;"Set Length"&lt;/span&gt;&lt;span
 style="color: black;"&gt;;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.button1.UseVisualStyleBackColor = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;true&lt;/span&gt;&lt;span
 style="color: black;"&gt;;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.button1.Click += &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;EventHandler&lt;/span&gt;&lt;span
 style="color: black;"&gt;(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.button1_Click);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;// &lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;// label1&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;// &lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.label1.AutoSize = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;true&lt;/span&gt;&lt;span
 style="color: black;"&gt;;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.label1.Location = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Drawing.&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Point&lt;/span&gt;&lt;span
 style="color: black;"&gt;(13, 48);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.label1.Name = &lt;/span&gt;&lt;span
 style="color: Maroon;"&gt;"label1"&lt;/span&gt;&lt;span
 style="color: black;"&gt;;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.label1.Size = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Drawing.&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Size&lt;/span&gt;&lt;span
 style="color: black;"&gt;(75, 13);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.label1.TabIndex = 3;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.label1.Text = &lt;/span&gt;&lt;span
 style="color: Maroon;"&gt;"Max Length = "&lt;/span&gt;&lt;span
 style="color: black;"&gt;;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;// &lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;// Form1&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Green;"&gt;// &lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.AutoScaleDimensions = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Drawing.&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;SizeF&lt;/span&gt;&lt;span
 style="color: black;"&gt;(6F, 13F);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.AutoScaleMode = System.Windows.Forms.&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;AutoScaleMode&lt;/span&gt;&lt;span
 style="color: black;"&gt;.Font;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.ClientSize = &lt;/span&gt;&lt;span
 style="color: Blue;"&gt;new&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Drawing.&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Size&lt;/span&gt;&lt;span
 style="color: black;"&gt;(292, 273);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.Controls.Add(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.label1);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.Controls.Add(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.button2);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.Controls.Add(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.button1);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.Controls.Add(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.textBox1);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.Name = &lt;/span&gt;&lt;span
 style="color: Maroon;"&gt;"Form1"&lt;/span&gt;&lt;span
 style="color: black;"&gt;;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.Text = &lt;/span&gt;&lt;span
 style="color: Maroon;"&gt;"Form1"&lt;/span&gt;&lt;span
 style="color: black;"&gt;;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.ResumeLayout(&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;false&lt;/span&gt;&lt;span
 style="color: black;"&gt;);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;this&lt;/span&gt;&lt;span
 style="color: black;"&gt;.PerformLayout();&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&lt;/span&gt;&lt;span style="color: Blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#endregion&lt;br&gt;
&lt;br&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;private&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Windows.Forms.&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;TextBox&lt;/span&gt;&lt;span
 style="color: black;"&gt; textBox1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;private&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Windows.Forms.&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Button&lt;/span&gt;&lt;span
 style="color: black;"&gt; button1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;private&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Windows.Forms.&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Button&lt;/span&gt;&lt;span
 style="color: black;"&gt; button2;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span
 style="color: Blue;"&gt;private&lt;/span&gt;&lt;span
 style="color: black;"&gt; System.Windows.Forms.&lt;/span&gt;&lt;span
 style="color: Teal;"&gt;Label&lt;/span&gt;&lt;span
 style="color: black;"&gt; label1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
}&lt;/span&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=67604"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=67604" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/kraki/aggbug/67604.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rich McColllister</dc:creator>
            <guid>http://geekswithblogs.net/kraki/archive/2006/01/30/67604.aspx</guid>
            <pubDate>Mon, 30 Jan 2006 16:44:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/kraki/comments/67604.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/kraki/archive/2006/01/30/67604.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/kraki/comments/commentRss/67604.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/kraki/services/trackbacks/67604.aspx</trackback:ping>
        </item>
        <item>
            <title>Looking For An Open Source Podcast Client</title>
            <link>http://geekswithblogs.net/kraki/archive/2006/01/20/66542.aspx</link>
            <description>&lt;p&gt;Does anyone know of any &lt;b&gt;open source&lt;/b&gt; podcast clients written in .net?  I've been searching for the past hour or so and haven't found anything.  There are a lot of free clients out there (and I mean a lot) for .net, but they seem to be lacking a couple of vital features here and there.  I need a podcast client that:&lt;/p&gt;

&lt;p&gt;  1)  Supports Proxy and Proxy Authenication (really really annoyed that the place I work is enforcing this)&lt;/p&gt;
&lt;p&gt;  2)  Save files to subscription specific folders (that is one folder per podcast)&lt;/p&gt;

&lt;p&gt;But I haven't found anything that does both.  Most clients have proxy support, but almost none have complete proxy authenication.  The one client that I've found that has proxy authenication, doesn't save the podcast to different folders.  And frankly I can't live without my weekly &lt;a href="http://www.thisweekintech.com/"&gt;Twit&lt;/a&gt; fix.&lt;/p&gt;

&lt;p&gt;*Sigh*  This is the type of situation that prompts programmers to roll there own, but I'm lazy and the siren call of AoE3 is strong.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=66542"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=66542" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/kraki/aggbug/66542.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rich McColllister</dc:creator>
            <guid>http://geekswithblogs.net/kraki/archive/2006/01/20/66542.aspx</guid>
            <pubDate>Fri, 20 Jan 2006 19:10:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/kraki/comments/66542.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/kraki/archive/2006/01/20/66542.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/kraki/comments/commentRss/66542.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/kraki/services/trackbacks/66542.aspx</trackback:ping>
        </item>
    </channel>
</rss>