<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>OOPs</title>
        <link>http://geekswithblogs.net/technetbytes/category/6501.aspx</link>
        <description>OOPs</description>
        <language>ur-PK</language>
        <copyright>Saqib Ullah</copyright>
        <managingEditor>saqibullah@msn.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>Allow your framework to load custom assemblies</title>
            <link>http://geekswithblogs.net/technetbytes/archive/2008/07/28/124095.aspx</link>
            <description>&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Hello geeks after a long gap I come back with a very arousing blog. When ever you see .Net Framework or any Microsoft patterns &amp;amp; practices library configure, they allow the developer to load the external components through some configurations in Web.config or App.Config file and that will be later called by the framework at runtime. Ok let take an example of Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.ILogFormatter Interface that require to format a LogEntry in a way suitable for wire transmission and when you open your configuration file you will find the following key.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;    &amp;lt;formatters&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;      &amp;lt;add template="" type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null"&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;           name="Text Formatter" /&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;    &amp;lt;/formatters&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;What that mean, when Enterprise library going to write log it will automatically use the above specify TextFormatter for text logging. Microsoft Enterprise library has the provision for the developer to create custom formatter by implementing ILogFormatter Interface. &lt;br /&gt;
&lt;/span&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Now you have an idea what I am going to implement. Let suppose I have a Theme Configuration management framework for my Windows application and my framework disclose some interfaces for custom implement like &lt;span style="COLOR: #339966"&gt;IGUIControl&lt;/span&gt;.&lt;/span&gt; &lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #f3f3f3; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top" width="590"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;namespace&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; ThemeFramework&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;{&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;   &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;interface&lt;/span&gt; &lt;span style="COLOR: teal"&gt;IGUIControl&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;   {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;      void Render();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;      void Draw(); &lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;   }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;}&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;

&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;If you want to develop a control for my framework you need to implement the IGUIControl interface for creating GUI controls, so it’s also the responsibility of the developer to Implement IGUIControl and configure it so Theme framework get that assembly. Here I only explain the static factory function of my framework that load all define assemblies from configuration file. Generic knowledge is prerequisite.&lt;/span&gt; &lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #f3f3f3; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top" width="590"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; &lt;span style="COLOR: blue"&gt;static&lt;/span&gt; T[] LoadInstances&amp;lt;T&amp;gt;() &lt;span style="COLOR: blue"&gt;where&lt;/span&gt; T : &lt;span style="COLOR: blue"&gt;class&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;       {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;           &lt;span style="COLOR: green"&gt;//You can use any other way read from configuration file.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;           &lt;span style="COLOR: green"&gt;//It utilize the .net 2.0 feature. The main target is to get all assemblies names.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;           &lt;span style="COLOR: teal"&gt;Settings&lt;/span&gt;.Default.Reload();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;           &lt;span style="COLOR: teal"&gt;StringCollection&lt;/span&gt; TypeColl = &lt;span style="COLOR: teal"&gt;Settings&lt;/span&gt;.Default.Types;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;           &lt;span style="COLOR: teal"&gt;List&lt;/span&gt;&amp;lt;T&amp;gt; components = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;List&lt;/span&gt;&amp;lt;T&amp;gt;();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;           &lt;span style="COLOR: blue"&gt;foreach&lt;/span&gt; (&lt;span style="COLOR: blue"&gt;string&lt;/span&gt; TypeInfo &lt;span style="COLOR: blue"&gt;in&lt;/span&gt; TypeColl)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;           {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;               &lt;span style="COLOR: blue"&gt;try&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;               {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;                   &lt;span style="COLOR: blue"&gt;string&lt;/span&gt;[] typeInfo = TypeInfo.Split(&lt;span style="COLOR: maroon"&gt;','&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;                   &lt;span style="COLOR: blue"&gt;string&lt;/span&gt; assemblyName = typeInfo[1];&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;                   &lt;span style="COLOR: blue"&gt;string&lt;/span&gt; typeName = typeInfo[0];&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;                   &lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (&lt;span style="COLOR: blue"&gt;string&lt;/span&gt;.IsNullOrEmpty(assemblyName) || &lt;span style="COLOR: blue"&gt;string&lt;/span&gt;.IsNullOrEmpty(typeName))&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;                   {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;                       &lt;span style="COLOR: blue"&gt;continue&lt;/span&gt;; &lt;span style="COLOR: green"&gt;// invalid type info&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;                   }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;                   assemblyName = assemblyName.Trim();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;                   typeName = typeName.Trim();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;                   &lt;span style="COLOR: blue"&gt;string&lt;/span&gt; exeDir = &lt;span style="COLOR: teal"&gt;Path&lt;/span&gt;.GetDirectoryName(&lt;span style="COLOR: teal"&gt;Application&lt;/span&gt;.ExecutablePath);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;                   &lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (!&lt;span style="COLOR: teal"&gt;File&lt;/span&gt;.Exists(&lt;span style="COLOR: teal"&gt;Path&lt;/span&gt;.Combine(exeDir, assemblyName + &lt;span style="COLOR: maroon"&gt;".dll"&lt;/span&gt;)))&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;                   {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;                       &lt;span style="COLOR: blue"&gt;continue&lt;/span&gt;; &lt;span style="COLOR: green"&gt;// invalid type information&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;                   }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;                   &lt;span style="COLOR: teal"&gt;Assembly&lt;/span&gt; assem = &lt;span style="COLOR: teal"&gt;Assembly&lt;/span&gt;.Load(typeInfo[1].Trim());&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;                   &lt;span style="COLOR: green"&gt;// Dynamic instance creation&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;                   T instance = assem.CreateInstance(typeInfo[0].Trim()) &lt;span style="COLOR: blue"&gt;as&lt;/span&gt; T;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;                   &lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (instance != &lt;span style="COLOR: blue"&gt;null&lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;                   {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;                       components.Add(instance);&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;                   }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;               }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;               &lt;span style="COLOR: blue"&gt;catch&lt;/span&gt;(&lt;span style="COLOR: teal"&gt;Exception&lt;/span&gt; ex)                   &lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;               { } &lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;           }&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;           &lt;span style="COLOR: blue"&gt;return&lt;/span&gt; components.ToArray();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;       }&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;

&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;In preceding code I use Settings.setting class for loading assembly’s names, you can use any other provider to get all custom assemblies names from configuration files. After that I try to find the give assembly in the application execution folder and load it into generic List&amp;lt;T&amp;gt; array. &lt;/span&gt; &lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #f3f3f3; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top" width="590"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #339966"&gt;IGUIControl&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;[] dogs = &lt;span style="COLOR: teal"&gt;FrameworkTest&lt;/span&gt;. LoadInstances&amp;lt;&lt;span style="COLOR: #339966"&gt;IGUIControl&lt;/span&gt;&amp;gt;();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;         &lt;span style="COLOR: blue"&gt;foreach&lt;/span&gt; (&lt;span style="COLOR: #339966"&gt;IGUIControl&lt;/span&gt; control &lt;span style="COLOR: blue"&gt;in&lt;/span&gt; loadControls)&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;         {&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;             Control.Draw();&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;         }&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;

&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="3"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Above code snippet load all assemblies that implement &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #339966"&gt;IGUIControl &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;and call it&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #339966"&gt; Draw() &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;method to draw the entry control&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124095"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124095" 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/technetbytes/aggbug/124095.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Saqib Ullah</dc:creator>
            <guid>http://geekswithblogs.net/technetbytes/archive/2008/07/28/124095.aspx</guid>
            <pubDate>Tue, 29 Jul 2008 07:42:15 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/technetbytes/comments/124095.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/technetbytes/archive/2008/07/28/124095.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/technetbytes/comments/commentRss/124095.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/technetbytes/services/trackbacks/124095.aspx</trackback:ping>
        </item>
        <item>
            <title>Implement events through interface in C#</title>
            <link>http://geekswithblogs.net/technetbytes/archive/2008/04/07/121110.aspx</link>
            <description>&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 8pt"&gt;&lt;font face="Verdana"&gt;According to C# specification interface contain a signature of events but a complete and brief implementation of events through interface is not available on the net.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Verdana"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 8pt"&gt;&lt;font face="Verdana"&gt;First you identify the interface&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #dddddd; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top" width="590"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;    public interface IControl&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;    {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;        &lt;font color="#339966"&gt;// Raise this event.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;        event EventHandler OnCommand;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;    }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 8pt"&gt;&lt;font face="Verdana"&gt;According to my need I create a class that inherit from System.EventArgs&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #dddddd; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top" width="590"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;    public class CommandArgs : EventArgs&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;    {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;        public string CommandName;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;    }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 8pt"&gt;&lt;font face="Verdana"&gt;My OutCommand class is a implementation of IControl interface that contain an OnCommand event.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #dddddd; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top" width="590"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;public class OutCommnad : IControl&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;    {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;        public OutCommnad()&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;        {}&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;        &lt;font color="#339966"&gt;// Create an event from interface event&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;        event EventHandler CommandEvent;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;        event EventHandler IControl.OnCommand&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;        {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;            add&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;            {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;                if (CommandEvent != null)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;                {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;                    lock (CommandEvent)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;                    {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;                        CommandEvent += value;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;                    }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;                }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;                else&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;                {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;                    CommandEvent = new EventHandler(value);&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;                }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;            }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;            remove&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;            {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;                if (CommandEvent != null)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;                {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;                    lock (CommandEvent)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;                    {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;                        CommandEvent -= value;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;                    }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;                }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;            }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;        }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;        public void Command()&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;        {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;            EventHandler handler = CommandEvent;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;            if (handler != null)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;            {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;                &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: #339966"&gt;//My custom class that passed as arguments.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: red"&gt;&lt;font face="Courier New"&gt;                CommandArgs cmd = new CommandArgs();&lt;/font&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: red"&gt;                cmd.CommandName = "Test Application event."&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;;&lt;/span&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;                &lt;span style="COLOR: blue"&gt;handler(this&lt;/span&gt;, &lt;strong&gt;&lt;span style="COLOR: red"&gt;cmd&lt;/span&gt;&lt;/strong&gt;&lt;span style="COLOR: blue"&gt;);&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;            }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;        }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;    }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 8pt"&gt;&lt;font face="Verdana"&gt;Calling of IControl.OnCommand event.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #dddddd; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top" width="590"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;    OutCommnad outCommand = new OutCommnad();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;    IControl con = (IControl)outCommand;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;    &lt;strong&gt;con.OnCommand +=new EventHandler(con_OnCommand);&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;    outCommand.Command();&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;br /&gt;
&lt;span style="FONT-SIZE: 8pt"&gt;&lt;font face="Verdana"&gt;IControl.OnCommand event function.&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #dddddd; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 6.15in; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top" width="590"&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;        void con_OnCommand(object sender, CommandArgs e)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;        {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;            string str = e.CommandName;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;            Console.WriteLine(str);&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;&lt;font face="Courier New"&gt;        }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=121110"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=121110" 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/technetbytes/aggbug/121110.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Saqib Ullah</dc:creator>
            <guid>http://geekswithblogs.net/technetbytes/archive/2008/04/07/121110.aspx</guid>
            <pubDate>Tue, 08 Apr 2008 05:49:16 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/technetbytes/comments/121110.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/technetbytes/archive/2008/04/07/121110.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/technetbytes/comments/commentRss/121110.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/technetbytes/services/trackbacks/121110.aspx</trackback:ping>
        </item>
        <item>
            <title>what is C# complete class?</title>
            <link>http://geekswithblogs.net/technetbytes/archive/2007/06/08/113123.aspx</link>
            <description>&lt;p&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt; font-family: Verdana; color: black;"&gt;&lt;font size="1"&gt;My&lt;/font&gt; &lt;font size="1"&gt;following class is a complete C# class because its contain all possible declarations.&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;o:p&gt;&lt;font size="2"&gt;&lt;span style="font-family: Verdana;"&gt; &lt;/span&gt;&lt;/font&gt;&lt;br /&gt;
&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="0" border="1" style="border: medium none ; background: silver none repeat scroll 0% 50%; margin-left: 5.4pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border-collapse: collapse;" class="MsoTableGrid"&gt;
    &lt;tbody&gt;
        &lt;tr style=""&gt;
            &lt;td width="564" valign="top" style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 423pt;"&gt;
            &lt;p style="font-family: Courier New;" class="MsoNormal"&gt;&lt;font size="1"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; System;&lt;o:p&gt; &lt;br /&gt;
            &lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
            &lt;p style="font-family: Courier New;" class="MsoNormal"&gt;&lt;font size="1"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;class&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; &lt;span style="color: teal;"&gt;MyClass&lt;/span&gt;&lt;br /&gt;
            {&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
            &lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;const&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt; MyConst =   45;&lt;br /&gt;
            &lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt; MyField = 64;&lt;br /&gt;
            &lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt;   MyStaticField = 65;&lt;br /&gt;
            &lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; MyMethod()&lt;br /&gt;
            &lt;span style=""&gt;    &lt;/span&gt;{&lt;span style=""&gt;&lt;br /&gt;
                   &lt;/span&gt;&lt;span style="color: teal;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: maroon;"&gt;"MyClass.MyMethod call"&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
            &lt;span style=""&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
            &lt;p style="font-family: Courier New;" class="MsoNormal"&gt;&lt;font size="1"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt; MyProperty&lt;br /&gt;
            &lt;span style=""&gt;    &lt;/span&gt;{&lt;br /&gt;
            &lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt;&lt;br /&gt;
            &lt;span style=""&gt;        &lt;/span&gt;{&lt;br /&gt;
            &lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;   MyField;&lt;br /&gt;
            &lt;span style=""&gt;        &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
            &lt;p style="font-family: Courier New;" class="MsoNormal"&gt;&lt;font size="1"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;/span&gt;&lt;br /&gt;
            &lt;span style=""&gt;        &lt;/span&gt;{&lt;span style=""&gt;&lt;br /&gt;
                       &lt;/span&gt;MyField = &lt;span style="color: blue;"&gt;value&lt;/span&gt;;&lt;br /&gt;
            &lt;span style=""&gt;        &lt;/span&gt;}&lt;br /&gt;
            &lt;span style=""&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
            &lt;p style="font-family: Courier New;" class="MsoNormal"&gt;&lt;font size="1"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;event&lt;/span&gt; &lt;span style="color: teal;"&gt;EventHandler&lt;/span&gt; MyEvent;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
            &lt;p style="font-family: Courier New;" class="MsoNormal"&gt;&lt;font size="1"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt; &lt;span style="color: blue;"&gt;this&lt;/span&gt;[&lt;span style="color: blue;"&gt;int&lt;/span&gt; index]&lt;br /&gt;
            &lt;span style=""&gt;    &lt;/span&gt;{&lt;br /&gt;
            &lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt;&lt;br /&gt;
            &lt;span style=""&gt;        &lt;/span&gt;{&lt;br /&gt;
            &lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;   0;&lt;br /&gt;
            &lt;span style=""&gt;        &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
            &lt;p style="font-family: Courier New;" class="MsoNormal"&gt;&lt;font size="1"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;/span&gt;&lt;br /&gt;
            &lt;span style=""&gt;        &lt;/span&gt;{&lt;br /&gt;
            &lt;span style=""&gt;            &lt;/span&gt;&lt;span style="color: teal;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: maroon;"&gt;"this[{0}] = {1}"&lt;/span&gt;, index, &lt;span style="color: blue;"&gt;value&lt;/span&gt;);&lt;br /&gt;
            &lt;span style=""&gt;        &lt;/span&gt;}&lt;br /&gt;
            &lt;span style=""&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
            &lt;p style="font-family: Courier New;" class="MsoNormal"&gt;&lt;font size="1"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: teal;"&gt;MyClass&lt;/span&gt; &lt;span style="color: blue;"&gt;operator&lt;/span&gt; +(&lt;span style="color: teal;"&gt;MyClass&lt;/span&gt;   a, &lt;span style="color: teal;"&gt;MyClass&lt;/span&gt; b)&lt;br /&gt;
            &lt;span style=""&gt;    &lt;/span&gt;{&lt;br /&gt;
            &lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;   &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;MyClass&lt;/span&gt;(a.MyField   * b.MyField);&lt;br /&gt;
            &lt;span style=""&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
            &lt;p style="font-family: Courier New;" class="MsoNormal"&gt;&lt;font size="1"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt;   MyClass()&lt;br /&gt;
            &lt;span style=""&gt;    &lt;/span&gt;{&lt;br /&gt;
            &lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: teal;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: maroon;"&gt;"Instance constructor call"&lt;/span&gt;);&lt;br /&gt;
            &lt;span style=""&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
            &lt;p style="font-family: Courier New;" class="MsoNormal"&gt;&lt;font size="1"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt;   MyClass(&lt;span style="color: blue;"&gt;int&lt;/span&gt; value)&lt;br /&gt;
            &lt;span style=""&gt;    &lt;/span&gt;{&lt;br /&gt;
            &lt;span style=""&gt;        &lt;/span&gt;MyField = value;&lt;br /&gt;
            &lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: teal;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: maroon;"&gt;"Instance constructor call"&lt;/span&gt;);&lt;br /&gt;
            &lt;span style=""&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
            &lt;p style="font-family: Courier New;" class="MsoNormal"&gt;&lt;font size="1"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;    &lt;/span&gt;~MyClass()&lt;br /&gt;
            &lt;span style=""&gt;    &lt;/span&gt;{&lt;br /&gt;
            &lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: teal;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: maroon;"&gt;"Finalizer call"&lt;/span&gt;);&lt;br /&gt;
            &lt;span style=""&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
            &lt;p style="font-family: Courier New;" class="MsoNormal"&gt;&lt;font size="2"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;static&lt;/span&gt;   MyClass()&lt;br /&gt;
            &lt;span style=""&gt;    &lt;/span&gt;{&lt;br /&gt;
            &lt;span style=""&gt;        &lt;/span&gt;MyStaticField *= 2;&lt;br /&gt;
            &lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: teal;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: maroon;"&gt;"Static constructor call"&lt;/span&gt;);&lt;br /&gt;
            &lt;span style=""&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
            &lt;p class="MsoNormal"&gt;&lt;font size="2" style="font-family: Courier New;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color: blue;"&gt;internal&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;span style="color: teal;"&gt;MyNestedClass&lt;/span&gt;&lt;br /&gt;
            &lt;span style=""&gt;    &lt;/span&gt;{ }&lt;/span&gt;&lt;/font&gt;&lt;br /&gt;
            &lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;font size="2"&gt;&lt;span style="font-family: Courier New;"&gt;}&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt; &lt;br /&gt;
            &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: Verdana;"&gt;Class members can include constants, fields, methods, properties, events, indexers, operators, instance constructors, finalizers, static constructors, and nested type declarations.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;  &lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;strong&gt;&lt;u&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana; color: blue;"&gt;Yours Suggestions &lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana; color: red;"&gt;&lt;br /&gt;
{&lt;br /&gt;
     if any thing I left in the above so please corrects me thank.&lt;br /&gt;
 }&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="1" style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-family: Verdana;"&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;font size="1" style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-family: Verdana;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="1" style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold; font-family: Verdana;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113123"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113123" 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/technetbytes/aggbug/113123.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Saqib Ullah</dc:creator>
            <guid>http://geekswithblogs.net/technetbytes/archive/2007/06/08/113123.aspx</guid>
            <pubDate>Sat, 09 Jun 2007 09:02:04 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/technetbytes/comments/113123.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/technetbytes/archive/2007/06/08/113123.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/technetbytes/comments/commentRss/113123.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/technetbytes/services/trackbacks/113123.aspx</trackback:ping>
        </item>
        <item>
            <title>Never Before</title>
            <link>http://geekswithblogs.net/technetbytes/archive/2007/04/22/111885.aspx</link>
            <description>&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Verdana" size="1"&gt;This is my C# class and its compatible with all .Net framework versions.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt; &lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; &lt;span style="COLOR: blue"&gt;class&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Person&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;    &lt;span style="COLOR: green"&gt;// Fields&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;    &lt;span style="COLOR: blue"&gt;private&lt;/span&gt; &lt;span style="COLOR: blue"&gt;string&lt;/span&gt; _name;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;    &lt;span style="COLOR: blue"&gt;private&lt;/span&gt; &lt;span style="COLOR: blue"&gt;int&lt;/span&gt;    _age;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: blue"&gt;    private&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; &lt;span style="COLOR: blue"&gt;string&lt;/span&gt; _city;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;    &lt;span style="COLOR: blue"&gt;private&lt;/span&gt; &lt;span style="COLOR: blue"&gt;string&lt;/span&gt; _company;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New" size="2"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;    &lt;span style="COLOR: green"&gt;// Properties&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;    &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;string&lt;/span&gt; Name&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;    {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;       &lt;span style="COLOR: blue"&gt;get&lt;/span&gt; { &lt;span style="COLOR: blue"&gt;return&lt;/span&gt; _name; }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;       &lt;span style="COLOR: blue"&gt;set&lt;/span&gt; { _name = &lt;span style="COLOR: blue"&gt;value&lt;/span&gt;; }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;    }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;    &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;int&lt;/span&gt; Age&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;    {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;       &lt;span style="COLOR: blue"&gt;get&lt;/span&gt; { &lt;span style="COLOR: blue"&gt;return&lt;/span&gt; _age; }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;       &lt;span style="COLOR: blue"&gt;set&lt;/span&gt; { _age = &lt;span style="COLOR: blue"&gt;value&lt;/span&gt;; }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;    }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;    &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;string&lt;/span&gt; City&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;    {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;       &lt;span style="COLOR: blue"&gt;get&lt;/span&gt; { &lt;span style="COLOR: blue"&gt;return&lt;/span&gt; _city; }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;       &lt;span style="COLOR: blue"&gt;set&lt;/span&gt; { _city = &lt;span style="COLOR: blue"&gt;value&lt;/span&gt;; }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;    }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;    &lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;string&lt;/span&gt; Company&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;    {&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;      &lt;span style="COLOR: blue"&gt;get&lt;/span&gt; { &lt;span style="COLOR: blue"&gt;return&lt;/span&gt; _company; }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;      &lt;span style="COLOR: blue"&gt;set&lt;/span&gt; { _company = &lt;span style="COLOR: blue"&gt;value&lt;/span&gt;; }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;    }&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Courier New"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Verdana" size="1"&gt;From the last bit of class code every thing is old so what is new. &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Verdana" size="1"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Verdana" size="1"&gt;Here is new technique in C# 3.0 to define properties in the terse and brief syntax like this,&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;&lt;span style="COLOR: #339966"&gt;Person&lt;/span&gt;&lt;span style="COLOR: blue"&gt;  &lt;/span&gt;&lt;span style="COLOR: black"&gt;objPerson&lt;/span&gt;&lt;span style="COLOR: blue"&gt; new&lt;/span&gt; &lt;span style="COLOR: #339966"&gt;Person&lt;/span&gt; {Name=”&lt;font color="#ff0000"&gt;Saqib Ullah&lt;/font&gt;”, City=”&lt;font color="#ff0000"&gt;Karachi&lt;/font&gt;”, Company=”&lt;font color="#ff0000"&gt;InboxBiz&lt;/font&gt;”, Age=&lt;font color="#ff0000"&gt;26&lt;/font&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Verdana" size="1"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Verdana" size="1"&gt;I hope this post increase your C# 3.0 little bit.&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111885"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111885" 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/technetbytes/aggbug/111885.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Saqib Ullah</dc:creator>
            <guid>http://geekswithblogs.net/technetbytes/archive/2007/04/22/111885.aspx</guid>
            <pubDate>Sun, 22 Apr 2007 21:09:31 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/technetbytes/comments/111885.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/technetbytes/archive/2007/04/22/111885.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/technetbytes/comments/commentRss/111885.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/technetbytes/services/trackbacks/111885.aspx</trackback:ping>
        </item>
        <item>
            <title>Three Singleton Classes, but use only ONE.</title>
            <link>http://geekswithblogs.net/technetbytes/archive/2007/03/26/109848.aspx</link>
            <description>&lt;FONT face=Verdana&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 7.5pt; FONT-FAMILY: Verdana"&gt;&lt;FONT size=1&gt;In this blog I want to describe you&amp;nbsp;three ways how to write&amp;nbsp;singleton class that is thread safe.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;
&lt;P&gt;&lt;FONT face=Verdana size=1&gt;&lt;STRONG&gt;&lt;U&gt;&lt;FONT color=#ff0000&gt;First Class&lt;BR&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=1&gt;public&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=1&gt; &lt;FONT color=#0000ff&gt;sealed&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;class&lt;/FONT&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=1&gt;TSSingleton&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=1&gt;&lt;FONT face=Verdana&gt;{&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Verdana&gt;&lt;FONT color=#0000ff&gt;private&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;static&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;volatile&lt;/FONT&gt; &lt;FONT color=#008080&gt;TSSingleton&lt;/FONT&gt; instance = &lt;FONT color=#0000ff&gt;null&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=1&gt;&lt;FONT face=Verdana&gt;;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Verdana&gt;&lt;FONT color=#0000ff&gt;private&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;static&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;object&lt;/FONT&gt; syncObj = &lt;FONT color=#0000ff&gt;new&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;object&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=1&gt;();&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT face=Verdana size=1&gt;// make the default constructor private,&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=1&gt;&lt;FONT color=#008000&gt;&lt;FONT face=Verdana&gt;// so that no can directly create it.&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana color=#0000ff&gt;private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=1&gt; TSSingleton(){}&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT face=Verdana size=1&gt;// public property that can only get&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=1&gt;&lt;FONT color=#008000&gt;&lt;FONT face=Verdana&gt;// the single instance of this class.&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana&gt;&lt;FONT color=#0000ff&gt;public&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;static&lt;/FONT&gt; &lt;FONT color=#008080&gt;TSSingleton&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=1&gt; Instance&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=1&gt;&lt;FONT face=Verdana&gt;{&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Verdana color=#0000ff&gt;get&lt;/FONT&gt;&lt;FONT face=Verdana&gt; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=1&gt;{&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=1&gt;&lt;FONT color=#008000&gt;&lt;FONT face=Verdana&gt;// only create a new instance if one doesn't already exist.&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana&gt;&lt;FONT color=#0000ff&gt;if&lt;/FONT&gt; (instance == &lt;FONT color=#0000ff&gt;null&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=1&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=1&gt;{&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT face=Verdana size=1&gt;// use this lock to ensure that only one thread is access&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=1&gt;&lt;FONT color=#008000&gt;&lt;FONT face=Verdana&gt;// this block of code at once.&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana color=#0000ff&gt;lock&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=1&gt;(syncObj)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=1&gt;&lt;FONT face=Verdana&gt;{&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Verdana&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&lt;/FONT&gt; (instance == &lt;FONT color=#0000ff&gt;null&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=1&gt;&lt;FONT face=Verdana&gt;)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;instance = &lt;/FONT&gt;&lt;FONT face=Verdana&gt;&lt;FONT color=#0000ff&gt;new&lt;/FONT&gt; &lt;FONT color=#008080&gt;TSSingleton&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=1&gt;();&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=1&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=1&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;&lt;FONT face=Verdana size=1&gt;// return instance where it was just&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=1&gt;&lt;FONT color=#008000&gt;&lt;FONT face=Verdana&gt;// created or already existed.&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana color=#0000ff&gt;return&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=1&gt;&lt;FONT face=Verdana&gt; instance;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Verdana&gt;}&lt;/FONT&gt;&lt;FONT face=Verdana&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=1&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=1&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 7.5pt; FONT-FAMILY: Verdana"&gt;&lt;STRONG&gt;&lt;U&gt;&lt;FONT color=#ff0000 size=1&gt;Second Class&lt;/FONT&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;FONT color=#0000ff&gt;sealed class&lt;/FONT&gt; MysingleTon&lt;BR&gt;&lt;FONT color=#008000&gt;{&amp;nbsp;&lt;BR&gt;&amp;nbsp; &amp;nbsp; // Static members are lazily initialized. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // .NET guarantees thread safety for static initialization&lt;/FONT&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;private static&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;re&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;adonly&lt;/FONT&gt; MysingleTon instance =&amp;nbsp;new MysingleTon();&amp;nbsp;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=1&gt;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;public static&lt;/FONT&gt; MysingleTon GetInstance()&lt;BR&gt;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return instance;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Verdana color=#ff0000 size=1&gt;&lt;U&gt;&lt;STRONG&gt;Thrid Class&lt;BR&gt;&lt;BR&gt;&lt;/STRONG&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;FONT face=Verdana color=#000000 size=1&gt;&lt;FONT color=#0000ff&gt;sealed&lt;/FONT&gt; class Singleton&lt;BR&gt;{&lt;BR&gt;&amp;nbsp; &lt;FONT color=#0000ff&gt;private&lt;/FONT&gt; Singleton() { }&lt;BR&gt;&amp;nbsp; &lt;FONT color=#0000ff&gt;public static&lt;/FONT&gt; readonly Singleton&amp;nbsp;TheInstance = new Singleton();&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#000000&gt;&lt;U&gt;I use last example of singleton class&lt;/U&gt;&lt;/FONT&gt;.&lt;/FONT&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=109848"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=109848" 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/technetbytes/aggbug/109848.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Saqib Ullah</dc:creator>
            <guid>http://geekswithblogs.net/technetbytes/archive/2007/03/26/109848.aspx</guid>
            <pubDate>Tue, 27 Mar 2007 07:52:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/technetbytes/comments/109848.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/technetbytes/archive/2007/03/26/109848.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/technetbytes/comments/commentRss/109848.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/technetbytes/services/trackbacks/109848.aspx</trackback:ping>
        </item>
    </channel>
</rss>