title: Differentiate null and string.Empty values in an XElement
body: <p>I have two instances of XElement:</p>
  
  <pre><code>var el1 = new System.Xml.Linq.XElement("xel", null);
  var el2 = new System.Xml.Linq.XElement("xel", string.Empty);
  </code></pre>
  
  <p><code>el1</code> looks like this:</p>
  
  <pre><code>&lt;xel /&gt;
  </code></pre>
  
  <p><code>el2</code> looks like this:</p>
  
  <pre><code>&lt;xel&gt;&lt;/xel&gt;
  </code></pre>
  
  <p>Yet, the <code>Value</code> property of <strong>both</strong> is equal to <code>string.Empty</code>.</p>
  
  <p>I can think of plenty of hacks to differentiate <code>null</code> from <code>string.Empty</code> in an <code>XElement</code>, but is there something built into the framework to do this that I'm missing?</p>