<feed version="0.3" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns="http://purl.org/atom/ns#" xml:lang="en-US"><title>Sajay Antony - Moved to http://Blogs.msdn.com/sajay</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/sajay/default.aspx" /><tagline type="text/html">The .NET Framework, C# and more....</tagline><id>http://dotnetjunkies.com/WebLog/sajay/default.aspx</id><author><url>http://dotnetjunkies.com/WebLog/sajay/default.aspx</url></author><generator url="http://communityserver.org" version="1.0.1.50214">Community Server</generator><modified>2005-05-26T15:01:00Z</modified><entry><title>Musings on Coding</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/sajay/archive/2007/04/20/229299.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:229299</id><created>2007-04-19T22:22:00Z</created><content type="text/html" mode="escaped">This is more of a reflective post. Its been a while since i joined microsoft and posted anything back here. I think i would try to come back here more often. 

I have been working as a consultant for quite sometime and am seeing how many programmers take things for granted. Its simply the easy way and that doesnt mean the correct way. 

I think i would try to crosspost here along with my msdn blog so hoping to put more stuff out here :)&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=229299" width="1" height="1"&gt;</content><slash:comments>2</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/sajay/commentrss.aspx?PostID=229299</wfw:commentRss></entry><entry><title>XMLSerializable Hashtable</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/sajay/archive/2005/12/28/134482.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:134482</id><created>2005-12-28T05:35:47Z</created><content type="text/html" mode="escaped">&lt;P&gt;Well its high time that the hash table became XML serializable but i still havent figured out&amp;nbsp; why not. &lt;BR&gt;But while I was thinking about this just thought i'd put it down myself. &lt;BR&gt;&lt;BR&gt;I would like to know if there is a more standard implementation for this. But I just managed to this chewing gum class done for now.&lt;BR&gt;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;using&lt;/SPAN&gt; System;
&lt;SPAN&gt;using&lt;/SPAN&gt; System.Runtime.Serialization;
&lt;SPAN&gt;using&lt;/SPAN&gt; System.Collections;
&lt;SPAN&gt;using&lt;/SPAN&gt; System.Xml;
&lt;SPAN&gt;using&lt;/SPAN&gt; System.Xml.Serialization;

&lt;SPAN&gt;namespace&lt;/SPAN&gt; XMLSerializableHashTable
{
	[Serializable]
	&lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;class&lt;/SPAN&gt; SerializableHashtable:Hashtable,
				System.Xml.Serialization.IXmlSerializable
	{
		
		&lt;SPAN&gt;#region&lt;/SPAN&gt; IXmlSerializable Members

		&lt;SPAN&gt;#region&lt;/SPAN&gt; Node &lt;SPAN&gt;class&lt;/SPAN&gt;
		&lt;SPAN&gt;/// 
&lt;/SPAN&gt;		&lt;SPAN&gt;/// This class would be for custom serialization
&lt;/SPAN&gt;		&lt;SPAN&gt;/// 
&lt;/SPAN&gt;		[Serializable]
		&lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;class&lt;/SPAN&gt; Node
		{
			&lt;SPAN&gt;public&lt;/SPAN&gt; Node()
			{}

			&lt;SPAN&gt;public&lt;/SPAN&gt; Node(&lt;SPAN&gt;string&lt;/SPAN&gt; k,&lt;SPAN&gt;object&lt;/SPAN&gt; v)
			{
				key = k;
				val = v;
			}

			&lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;string&lt;/SPAN&gt; key;
			&lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;object&lt;/SPAN&gt; val;
		}

		&lt;SPAN&gt;#endregion&lt;/SPAN&gt; Node &lt;SPAN&gt;class&lt;/SPAN&gt; &lt;SPAN&gt;for&lt;/SPAN&gt; XML Serialization

		&lt;SPAN&gt;/// 
&lt;/SPAN&gt;		&lt;SPAN&gt;/// Write the xml using an array list
&lt;/SPAN&gt;		&lt;SPAN&gt;/// using the Node to store key value pairs
&lt;/SPAN&gt;		&lt;SPAN&gt;/// 
&lt;/SPAN&gt;		&lt;SPAN&gt;/// 
&lt;/SPAN&gt;		&lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;void&lt;/SPAN&gt; WriteXml(System.Xml.XmlWriter writer)
		{
			XmlSerializer xs = &lt;SPAN&gt;new&lt;/SPAN&gt; XmlSerializer(&lt;SPAN&gt;typeof&lt;/SPAN&gt;(System.Collections.ArrayList),
												&lt;SPAN&gt;new&lt;/SPAN&gt; System.Type[]{&lt;SPAN&gt;typeof&lt;/SPAN&gt;(Node)});
			ArrayList list = &lt;SPAN&gt;new&lt;/SPAN&gt; ArrayList();
			&lt;SPAN&gt;foreach&lt;/SPAN&gt;(&lt;SPAN&gt;string&lt;/SPAN&gt; key &lt;SPAN&gt;in&lt;/SPAN&gt; &lt;SPAN&gt;this&lt;/SPAN&gt;.Keys)
			{
				list.Add(&lt;SPAN&gt;new&lt;/SPAN&gt; Node(key,&lt;SPAN&gt;this&lt;/SPAN&gt;[key]));
			}
			xs.Serialize(writer,list);
		}

		&lt;SPAN&gt;public&lt;/SPAN&gt; System.Xml.Schema.XmlSchema GetSchema()
		{
			&lt;SPAN&gt;// TODO:  Add SerializableHashtable.GetSchema implementation
&lt;/SPAN&gt;			&lt;SPAN&gt;return&lt;/SPAN&gt; &lt;SPAN&gt;null&lt;/SPAN&gt;;
		}

		&lt;SPAN&gt;/// 
&lt;/SPAN&gt;		&lt;SPAN&gt;/// Deserialization using array list
&lt;/SPAN&gt;		&lt;SPAN&gt;/// and the node(key,value) pairs
&lt;/SPAN&gt;		&lt;SPAN&gt;/// 
&lt;/SPAN&gt;		&lt;SPAN&gt;/// 
&lt;/SPAN&gt;		&lt;SPAN&gt;public&lt;/SPAN&gt; &lt;SPAN&gt;void&lt;/SPAN&gt; ReadXml(System.Xml.XmlReader reader)
		{
			XmlSerializer xs = &lt;SPAN&gt;new&lt;/SPAN&gt; XmlSerializer(&lt;SPAN&gt;typeof&lt;/SPAN&gt;(System.Collections.ArrayList),
												&lt;SPAN&gt;new&lt;/SPAN&gt; System.Type[]{&lt;SPAN&gt;typeof&lt;/SPAN&gt;(Node)});

			&lt;SPAN&gt;//Move the reader into the ArrayList element.
&lt;/SPAN&gt;			reader.Read();
			ArrayList list  = xs.Deserialize(reader) &lt;SPAN&gt;as&lt;/SPAN&gt; ArrayList;
			Node node;

			&lt;SPAN&gt;if&lt;/SPAN&gt;(list == &lt;SPAN&gt;null&lt;/SPAN&gt;)
				&lt;SPAN&gt;return&lt;/SPAN&gt;;

			&lt;SPAN&gt;//Reload the hashTable.
&lt;/SPAN&gt;			&lt;SPAN&gt;for&lt;/SPAN&gt;(&lt;SPAN&gt;int&lt;/SPAN&gt; i=&lt;SPAN&gt;0&lt;/SPAN&gt;;ithis&lt;/SPAN&gt;.Add(node.key,node.val);
			}
		}
		&lt;SPAN&gt;#endregion&lt;/SPAN&gt;
	}
}
&lt;/PRE&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=134482" width="1" height="1"&gt;</content><slash:comments>2</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/sajay/commentrss.aspx?PostID=134482</wfw:commentRss></entry><entry><title>Quest for the value of the Output parameter - I</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/sajay/archive/2005/12/07/134183.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:134183</id><created>2005-12-07T06:15:40Z</created><content type="text/html" mode="escaped">
&lt;p&gt;Lets hit the specs for the output paramter &lt;/p&gt;
&lt;p class="MsoListBullet"&gt;&lt;span&gt;&lt;span&gt;·&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;A variable need not be definitely assigned 
before it can be passed as an output parameter in a function member 
invocation.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListBullet"&gt;&lt;span&gt;&lt;span&gt;·&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Following the normal completion of a function 
member invocation, each variable that was passed as an output parameter is 
considered assigned in that execution path.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListBullet"&gt;&lt;span&gt;&lt;span&gt;·&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Within a function member, an output parameter 
is considered initially unassigned.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListBullet"&gt;&lt;span&gt;&lt;span&gt;·&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Every output parameter of a function member 
must be definitely assigned (§&lt;span&gt;&lt;span&gt;&#xE; &lt;/span&gt;5.3&lt;/span&gt;) before 
the function member returns normally.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;How do we get the value then ?&lt;br&gt;&lt;br&gt;The point that totally put me of was 
the debugger that had the value. Why can I not access it :) ?&lt;/p&gt;
&lt;p&gt;&lt;img alt="" hspace="0" src="http://dotnetjunkies.com/WebLog/photos/sajay/images/134182/original.aspx" align="baseline" border="0"&gt;&lt;/p&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=134183" width="1" height="1"&gt;</content><slash:comments>139</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/sajay/commentrss.aspx?PostID=134183</wfw:commentRss></entry><entry><title>One for the Road</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/sajay/archive/2005/11/30/134074.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:134074</id><created>2005-11-30T11:14:55Z</created><content type="text/html" mode="escaped">&lt;table&gt;
  
  &lt;tr&gt;
    &lt;td&gt;&lt;img alt="MSDN TV" hspace="0" src="http://photos1.blogger.com/blogger/4446/258/640/Picture%20004.jpg" align="baseline" border="0"&gt; &lt;/td&gt;
    &lt;td&gt;
      &lt;div&gt;&amp;nbsp;I have been wondering how to use that crappy Traffic jams 
      and&amp;nbsp;the hell load of time one has on the crowded roads of Bangalore 
      when commuting to office. &lt;br&gt;Well with this in mind I finally picked up a 
      few new episodes onto my PPC and made it a point to watch them rather than 
      be bothered about the damn road blocks and traffic.&amp;nbsp;&lt;br&gt;Tonight's 
      show - WinFX at PDC &lt;/div&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img alt="" hspace="0" src="http://msdn.microsoft.com/msdn-online/shared/graphics/right_bnr_netshow.jpg" align="baseline" border="3"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=134074" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/sajay/commentrss.aspx?PostID=134074</wfw:commentRss></entry><entry><title>LSA in .NET</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/sajay/archive/2005/11/28/134033.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:134033</id><created>2005-11-28T12:06:53Z</created><content type="text/html" mode="escaped">&lt;p&gt;After a lot of digging and findings on the LSA API, one would usually give 
up. Now in the managed world one would obviously jump looking to 
DirectoryServices for help but then after quite a lot of poking around i 
realized only the userFlags (winNt ) could be set and the policy object is 
totally in a different direction. Well then finally LSA was suggested as the way 
to go. &lt;/p&gt;
&lt;p&gt;There was this wonderful article on code project that I found quite usefull 
in giving a good understanding of the API by Corinna John &lt;a href="http://www.codeproject.com/csharp/lsadotnet.asp"&gt;&lt;/a&gt;http://www.codeproject.com/csharp/lsadotnet.asphttp://www.codeproject.com/csharp/lsadotnet.asp 
Now the program here had a few gliches which im not too sure why. &lt;br&gt;So i went 
around looking a bit more and there to the resuce was pinvoke.net. Check this 
article out at &lt;a href="http://pinvoke.net/default.aspx/advapi32/LsaOpenPolicy.html"&gt;http://pinvoke.net/default.aspx/advapi32/LsaOpenPolicy.htmlhttp://pinvoke.net/default.aspx/advapi32/LsaOpenPolicy.html&lt;/a&gt; 
This too follows from the code project article. &lt;br&gt;The most interesting part in 
sample at pinvoke.net was the use of the custom marshaler for the 
LSA_UNICODE_STRING which turn out to be known as the super special lsa string. 
Ok if you just want to dive into LSA here is the way to go &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthn/security/lsaopenpolicy.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthn/security/lsaopenpolicy.asphttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthn/security/lsaopenpolicy.asp&lt;/a&gt;&lt;/p&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=134033" width="1" height="1"&gt;</content><slash:comments>122</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/sajay/commentrss.aspx?PostID=134033</wfw:commentRss></entry><entry><title>Primitive Boxing J# and IL</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/sajay/archive/2005/11/24/133975.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:133975</id><created>2005-11-24T07:20:55Z</created><content type="text/html" mode="escaped">&lt;p&gt;&lt;span&gt;Consider a 
method definition as follows&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" color="blue" size="2"&gt;&lt;span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" color="blue" size="2"&gt;&lt;span&gt;public&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt;&lt;span&gt; &lt;font color="blue"&gt;&lt;span&gt;void&lt;/span&gt;&lt;/font&gt; Write(&lt;font color="blue"&gt;&lt;span&gt;object&lt;/span&gt;&lt;/font&gt; val);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;&lt;span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana" color="navy" size="1"&gt;&lt;span&gt;You can call the 
method simply like this &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;blockquote dir="ltr"&gt;
  &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt;&lt;span&gt;MyConsole.Write(100);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;span&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span&gt;It works fine provided 
this happens in a language like C# where primitive types are &lt;font color="black"&gt;boxed&lt;/font&gt; automatically.&lt;/span&gt;&lt;span&gt;&lt;br&gt;&lt;span&gt;Looking at IL this is how it disassembles&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote dir="ltr"&gt;
  &lt;p&gt;&lt;font face="Courier New" size="1"&gt;&lt;span&gt;IL_0000:&amp;nbsp; 
  ldc.i4.s&amp;nbsp;&amp;nbsp; 100&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New" size="1"&gt;&lt;span&gt;IL_0002:&amp;nbsp; 
  box&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [mscorlib]&lt;b&gt;&lt;span&gt;System.Int32&lt;br&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New" size="1"&gt;&lt;span&gt;IL_0007:&amp;nbsp; 
  call&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void 
  Writer.MyConsole::Write(object)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;font face="Times New Roman" size="3"&gt;&lt;span&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" color="navy" size="1"&gt;&lt;span&gt;As you can see it just 
simply boxes it up into an Int32 struct.&amp;nbsp;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" color="navy" size="1"&gt;&lt;span&gt;In J# you get the 
following error if you use the above statement to call the 
method.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&gt;c:\Code\JSharpInt\JSharpInt\Class1.jsl(12): 
Cannot find method 'Write(int)' in 
'Writer.MyConsole'&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Now you need 
to box this explicitly if you are sure of the method, using the Int32 
struct.&amp;nbsp;&lt;/span&gt;&lt;font face="Verdana" size="2"&gt;&lt;span&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;font face="Courier New" size="2"&gt;&lt;span&gt;J#&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;font face="Courier New" size="2"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
Writer.MyConsole.Write(&lt;b&gt;&lt;span&gt;(System.Int32)&lt;/span&gt;&lt;/b&gt;10);&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt;&lt;span&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana" color="navy" size="1"&gt;&lt;span&gt;Well you can check out 
the IL &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;blockquote dir="ltr"&gt;
  &lt;p&gt;&lt;font face="Courier New" size="1"&gt;&lt;span&gt;IL_000c:&amp;nbsp; 
  ldc.i4.s&amp;nbsp;&amp;nbsp; 10&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New" size="1"&gt;&lt;span&gt;IL_000e:&amp;nbsp; 
  box&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [mscorlib]&lt;b&gt;&lt;span&gt;System.Int32&lt;br&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New" size="1"&gt;&lt;span&gt;IL_0013:&amp;nbsp; 
  call&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void 
  [Writer]Writer.MyConsole::Write(object)&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=133975" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/sajay/commentrss.aspx?PostID=133975</wfw:commentRss></entry><entry><title>Community Server Reader</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/sajay/archive/2005/11/22/133931.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:133931</id><created>2005-11-22T10:42:28Z</created><content type="text/html" mode="escaped">&lt;p&gt;This is one awesome feature I liked about Community Server 2.0&lt;/p&gt;
&lt;p&gt;&lt;img alt="" hspace="0" src="http://dotnetjunkies.com/WebLog/photos/sajay/images/133930/original.aspx" align="baseline" border="0"&gt;&lt;/p&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=133931" width="1" height="1"&gt;</content><slash:comments>1</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/sajay/commentrss.aspx?PostID=133931</wfw:commentRss></entry><entry><title>Culture Free XML - ( Yes I know -  Invariant )</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/sajay/archive/2005/11/21/133883.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:133883</id><created>2005-11-21T02:22:10Z</created><content type="text/html" mode="escaped">&lt;p&gt;XML serialization and deserialization is one interesting topic. I came across 
some interesting conversations when there was a requirement as to enable input 
values that are culture specific.&lt;br&gt;I would say XML is gotta be kept culture 
independed, always think about the consumer. Also we would always prefer this to 
happen across culture and also across versions. &lt;br&gt;So why make it culture 
specific?&lt;br&gt;&lt;br&gt;Well I guess this is pretty evident from the way the framework 
implements XML serialization. &lt;br&gt;What ever the culture may be on the thread the 
way the xml serialization takes place is kind simple and straight forward. &lt;/p&gt;
&lt;p&gt;&lt;font color="darkblue"&gt;de-DE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;strong&gt; 
1,001&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#65279;&amp;lt;?xml 
version="1.0" 
encoding="utf-16"?&amp;gt;&amp;lt;decimal&amp;gt;&lt;strong&gt;1.001&lt;/strong&gt;&amp;lt;/decimal&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;If you want to see it your self here it the snippet. &lt;/p&gt;&lt;pre&gt;&lt;span&gt;  1&lt;/span&gt; 		&lt;span&gt;private&lt;/span&gt; &lt;span&gt;string&lt;/span&gt; DisplayAllCultures()
&lt;span&gt;  2&lt;/span&gt; 		{
&lt;span&gt;  3&lt;/span&gt; 			&lt;span&gt;decimal&lt;/span&gt; val = &lt;span&gt;1&lt;/span&gt;&lt;span&gt;.001&lt;/span&gt;M;
&lt;span&gt;  4&lt;/span&gt; 		
&lt;span&gt;  5&lt;/span&gt; 			StringBuilder result = &lt;span&gt;new&lt;/span&gt; StringBuilder();
&lt;span&gt;  6&lt;/span&gt; 			&lt;span&gt;foreach&lt;/span&gt;(CultureInfo ci &lt;span&gt;in&lt;/span&gt; CultureInfo.GetCultures(CultureTypes.InstalledWin32Cultures))
&lt;span&gt;  7&lt;/span&gt; 			{
&lt;span&gt;  8&lt;/span&gt; 				Thread.CurrentThread.CurrentCulture = ci;
&lt;span&gt;  9&lt;/span&gt; 
&lt;span&gt; 10&lt;/span&gt; 				
&lt;span&gt; 11&lt;/span&gt; 				result.Append(ci.Name);
&lt;span&gt; 12&lt;/span&gt; 				result.Append(&lt;span&gt;"          "&lt;/span&gt;);
&lt;span&gt; 13&lt;/span&gt; 				result.Append(val.ToString());
&lt;span&gt; 14&lt;/span&gt; 				result.Append(&lt;span&gt;"          "&lt;/span&gt;);
&lt;span&gt; 15&lt;/span&gt; 
&lt;span&gt; 16&lt;/span&gt; 				&lt;span&gt;using&lt;/span&gt;(MemoryStream mem = &lt;span&gt;new&lt;/span&gt; MemoryStream(&lt;span&gt;200&lt;/span&gt;))
&lt;span&gt; 17&lt;/span&gt; 				{
&lt;span&gt; 18&lt;/span&gt; 					&lt;span&gt;//Read the serialzed string from memory
&lt;/span&gt;&lt;span&gt; 19&lt;/span&gt; 					XmlTextWriter writer = &lt;span&gt;new&lt;/span&gt; XmlTextWriter(mem,Encoding.Unicode);
&lt;span&gt; 20&lt;/span&gt; 					XmlSerializer xs = &lt;span&gt;new&lt;/span&gt; XmlSerializer(&lt;span&gt;typeof&lt;/span&gt;(&lt;span&gt;decimal&lt;/span&gt;));
&lt;span&gt; 21&lt;/span&gt; 					xs.Serialize(writer,val);
&lt;span&gt; 22&lt;/span&gt; 
&lt;span&gt; 23&lt;/span&gt; 					mem.Position = &lt;span&gt;0&lt;/span&gt;;
&lt;span&gt; 24&lt;/span&gt; 					&lt;span&gt;byte&lt;/span&gt;[] buffer = &lt;span&gt;new&lt;/span&gt; &lt;span&gt;byte&lt;/span&gt;[mem.Length];
&lt;span&gt; 25&lt;/span&gt; 					mem.Read(buffer,&lt;span&gt;0&lt;/span&gt;,Convert.ToInt32(mem.Length -&lt;span&gt;1&lt;/span&gt;));
&lt;span&gt; 26&lt;/span&gt; 					UnicodeEncoding unicode = &lt;span&gt;new&lt;/span&gt; UnicodeEncoding();
&lt;span&gt; 27&lt;/span&gt; 					result.Append(unicode.GetChars(buffer));
&lt;span&gt; 28&lt;/span&gt; 				}
&lt;span&gt; 29&lt;/span&gt; 
&lt;span&gt; 30&lt;/span&gt; 				result.Append(&lt;span&gt;"\r\n"&lt;/span&gt;);
&lt;span&gt; 31&lt;/span&gt; 			}
&lt;span&gt; 32&lt;/span&gt; 			&lt;span&gt;return&lt;/span&gt; result.ToString();
&lt;span&gt; 33&lt;/span&gt; 		}
&lt;span&gt; 34&lt;/span&gt; &lt;/pre&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=133883" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/sajay/commentrss.aspx?PostID=133883</wfw:commentRss></entry><entry><title>Battle of Generators</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/sajay/archive/2005/11/18/133855.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:133855</id><created>2005-11-18T03:52:03Z</created><content type="text/html" mode="escaped">I was kind of surprised when I got a mail asking me if i would review the a Tangible Architect and was happy to. Anyway more importantly I have always been playing around with Olymars and now its time really do some stuff. 
I've also been working with EntityBroker for quite a while. Lets see how this baby comes out. :)...(&lt;a href="http://dotnetjunkies.comhttp://dotnetjunkies.com/WebLog/sajay/archive/2005/11/18/133855.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=133855" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/sajay/commentrss.aspx?PostID=133855</wfw:commentRss></entry><entry><title>castClass vs </title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/sajay/archive/2005/10/28/133465.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:133465</id><created>2005-10-28T13:07:08Z</created><content type="text/html" mode="escaped">
&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&gt;Wanted to share a small note 
keeping in mind the&amp;nbsp;"as" keyword .&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
&lt;table class="MsoNormalTable" cellspacing="0" cellpadding="0"&gt;
  
  &lt;tr&gt;
    &lt;td&gt;
      &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&gt;public class 
      Program&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&gt;{&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
      public static void Main()&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&gt;&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;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
      object o = 100;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
      string s = o &lt;font color="blue"&gt;&lt;span&gt;as&lt;/span&gt;&lt;/font&gt; 
      string;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
      &lt;font color="#ff6600"&gt;&lt;span&gt;string t = (string) 
      o;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&gt;&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;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/font&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;/td&gt;
    &lt;td&gt;
      &lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&gt;&amp;nbsp; IL_0000:&amp;nbsp; 
      ldc.i4.s&amp;nbsp;&amp;nbsp; 100&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&gt;&amp;nbsp; IL_0002:&amp;nbsp; 
      box&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
      [mscorlib]System.Int32&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&gt;&amp;nbsp; IL_0007:&amp;nbsp; 
      stloc.0&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&gt;&amp;nbsp; IL_0008:&amp;nbsp; 
      ldloc.0&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&gt;&amp;nbsp; IL_0009:&amp;nbsp; &lt;font color="blue"&gt;&lt;span&gt;isinst&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
      [mscorlib]System.String&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&gt;&amp;nbsp; &lt;br&gt;&amp;nbsp; 
      IL_000e:&amp;nbsp; stloc.1&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&gt;&amp;nbsp; IL_000f:&amp;nbsp; 
      ldloc.0&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&gt;&amp;nbsp; &lt;font color="#ff6600"&gt;&lt;span&gt;IL_0010:&amp;nbsp; 
      &lt;/span&gt;&lt;/font&gt;&lt;font color="blue"&gt;&lt;span&gt;castclass&lt;/span&gt;&lt;/font&gt;&lt;font color="#ff6600"&gt;&lt;span&gt;&amp;nbsp; 
      [mscorlib]System.String&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; 
      &lt;br&gt;&amp;nbsp; IL_0015:&amp;nbsp; stloc.2&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&gt;&amp;nbsp; 
      IL_0016:&amp;nbsp; ret&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&gt;&lt;o:p&gt;&amp;nbsp;If you notice that "as" 
&#x1D; is translated into isinst opcode and the advantage of using this is that it 
would return a null reference if the object of is not castable to a 
string.&lt;br&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana" size="1"&gt;&lt;span&gt;On the other hand the &lt;b&gt;&lt;span&gt;castClass&lt;/span&gt;&lt;/b&gt; would throw an InvalidCast 
exception. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=133465" width="1" height="1"&gt;</content><slash:comments>124</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/sajay/commentrss.aspx?PostID=133465</wfw:commentRss></entry><entry><title>Start.com</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/sajay/archive/2005/10/04/133054.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:133054</id><created>2005-10-04T10:35:47Z</created><content type="text/html" mode="escaped">&lt;p&gt;I wished MS would get things out to more people and faster &lt;/p&gt;
&lt;p&gt;&lt;a href="http://start.com"&gt;http://start.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=133054" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/sajay/commentrss.aspx?PostID=133054</wfw:commentRss></entry><entry><title>J# and out parameters</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/sajay/archive/2005/08/30/132230.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:132230</id><created>2005-08-30T01:13:08Z</created><content type="text/html" mode="escaped">&lt;p&gt;I came across another peculiar scenario for J#. &lt;br&gt;We all believe that out 
parameters would not have to be initlialized since they are expected to return a 
value from the calling method. But then again we have to think how its 
implemented in J#. Ironically J# doesnt have a good idea about out parameters 
and guess it uses it as a ref&lt;/p&gt;
&lt;p&gt;&lt;img alt="" hspace="0" src="http://devauthority.com/photos/decode/images/519/original.aspx" align="middle" border="0"&gt;&lt;/p&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=132230" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/sajay/commentrss.aspx?PostID=132230</wfw:commentRss></entry><entry><title>Hello world for IAsyncResult</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/sajay/archive/2005/08/17/131988.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:131988</id><created>2005-08-17T07:57:51Z</created><content type="text/html" mode="escaped">&lt;p&gt;&lt;span&gt;&lt;font face="Verdana" color="black"&gt;Here is a hello 
world for IAsyncResult.&lt;br&gt;I was wondering - does this internally spawn its own 
thread ? Need some info as to how to catch exceptions thrown from this 
?&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;font face="Verdana" color="black"&gt;Any help would be 
appreciated.&lt;/font&gt; &lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;span&gt;using&lt;/span&gt; System;

&lt;span&gt;namespace&lt;/span&gt; IAsyncTest
{
	&lt;span&gt;class&lt;/span&gt; Program
	{
		&lt;span&gt;public&lt;/span&gt; &lt;span&gt;delegate&lt;/span&gt; &lt;span&gt;void&lt;/span&gt; AsyncTask();
		
		[STAThread]
		&lt;span&gt;static&lt;/span&gt; &lt;span&gt;void&lt;/span&gt; Main(&lt;span&gt;string&lt;/span&gt;[] args)
		{
			Task t = &lt;span&gt;new&lt;/span&gt; Task();
			AsyncTask asyncTask = &lt;span&gt;new&lt;/span&gt; AsyncTask(t.DoTask);
			IAsyncResult ar = asyncTask.BeginInvoke(&lt;span&gt;new&lt;/span&gt; AsyncCallback(t.Done),&lt;span&gt;null&lt;/span&gt;);
			Console.ReadLine();
		}
	}

	&lt;span&gt;public&lt;/span&gt; &lt;span&gt;class&lt;/span&gt; Task
	{
		&lt;span&gt;public&lt;/span&gt; &lt;span&gt;void&lt;/span&gt; DoTask()
		{
			Console.WriteLine(&lt;span&gt;"Start Sleep"&lt;/span&gt;);
			System.Threading.Thread.Sleep(&lt;span&gt;10000&lt;/span&gt;);
			Console.WriteLine(&lt;span&gt;"End Sleep"&lt;/span&gt;);	
		}

		&lt;span&gt;/// &amp;lt;summary&amp;gt;
&lt;/span&gt;		&lt;span&gt;/// IAsyncCallback Method
&lt;/span&gt;		&lt;span&gt;/// &amp;lt;/summary&amp;gt;
&lt;/span&gt;		&lt;span&gt;/// &amp;lt;param name="ar"&amp;gt;&amp;lt;/param&amp;gt;
&lt;/span&gt;		&lt;span&gt;public&lt;/span&gt; &lt;span&gt;void&lt;/span&gt; Done(IAsyncResult ar)
		{
			Console.WriteLine(&lt;span&gt;"Done"&lt;/span&gt;);
		}
	}
}&lt;/pre&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=131988" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/sajay/commentrss.aspx?PostID=131988</wfw:commentRss></entry><entry><title>Deprecating Methods - J#</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/sajay/archive/2005/06/08/112225.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:112225</id><created>2005-06-08T17:11:00Z</created><content type="text/html" mode="escaped">&lt;font color="#008000"&gt;
&lt;p&gt;&lt;span style="COLOR: green"&gt;&lt;font color="black" size="2"&gt;I was wondering regarding 
deprecating methods in J# and guess what everyone told me the @deprecated 
attribute. But how do i get a message to indicate what method to substitute 
with. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="COLOR: green"&gt;&lt;font color="#000000" size="2"&gt;I was actually surpised 
to find the resolution at the winfx msdn articles and the funny thing is that it 
worked pretty well in 1.1 version of the framerowk&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;span style="COLOR: green"&gt;&lt;font size="2"&gt;/** @attribute.method Obsolete("My Message", false) */&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style="COLOR: green"&gt;&lt;/span&gt;&lt;span style="COLOR: green"&gt;&lt;span style="COLOR: green"&gt;&lt;font color="#000000"&gt;&lt;font size="2"&gt;In case your looking for 
the link it was &lt;/font&gt;&lt;a href="http://winfx.msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vjcon/html/0449fb4b-b24e-4400-92ec-312ed29018a8.asp"&gt;&lt;font size="2"&gt;http://winfx.msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vjcon/html/0449fb4b-b24e-4400-92ec-312ed29018a8.asp&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&lt;/span&gt; 

&lt;p&gt;
&lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=112225" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/sajay/commentrss.aspx?PostID=112225</wfw:commentRss></entry><entry><title>Not of System.Object</title><link rel="alternate" type="text/html" href="http://dotnetjunkies.com/WebLog/sajay/archive/2005/05/26/89735.aspx" /><id>58df7014-fd75-437c-9641-150997716d1c:89735</id><created>2005-05-26T15:01:00Z</created><content type="text/html" mode="escaped">&lt;p&gt;When we learn &lt;a title="C#" href="http://msdn.microsoft.com/vcsharp/" target="_blank"&gt;C#&lt;/a&gt; we assume for all types the following holds true.&lt;/p&gt;&lt;pre&gt;&lt;span style="COLOR: blue"&gt;object&lt;/span&gt; o = &amp;lt;variable&amp;gt;;&lt;/pre&gt;
&lt;p&gt;So come to think of it is there any type that would not satisfy this 
statement (WRT to &lt;a title="C#" href="http://msdn.microsoft.com/vcsharp/" target="_blank"&gt;C#&lt;/a&gt;).&lt;br&gt;Well and here is a sample that shows you that there is 
a type who does not have &lt;br&gt;System.Object as its root, its the pointer. &lt;/p&gt;&lt;pre&gt;&lt;span style="COLOR: blue"&gt;class&lt;/span&gt; Class1
{
	&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;void&lt;/span&gt; Main()
	{
		&lt;span style="COLOR: blue"&gt;unsafe&lt;/span&gt;
		{
			&lt;span style="COLOR: blue"&gt;int&lt;/span&gt;* variable;
			&lt;span style="COLOR: blue"&gt;object&lt;/span&gt; o = variable;
		}
	}
}&lt;/pre&gt;
&lt;p&gt;Check out the compiler error you end up with :)&lt;/p&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=89735" width="1" height="1"&gt;</content><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/sajay/commentrss.aspx?PostID=89735</wfw:commentRss></entry></feed>