This is an extension method that serializes any object to xml. Note that it is “null resistant” in that if the target is null, the extension does not throw an object-not-set-to-an-instance exception, but instead simply returns null.
public static string ToXmlString(this T item) where T : class
if (item == null)
using (var stream = new MemoryStream())
using (var writer = XmlWriter.Create(stream))
new XmlSerializer(item.GetType()).Serialize(writer, item);
xml = Encoding.UTF8.GetString(stream.ToArray());
UPDATE: I’ve created a solution script so you can run this with a single command
If you want to quickly delete all the bin and obj folders in a solution:
- Make sure you have Microsoft’s Productivity Power Tools 2012 installed in your Visual Studio’s Extensions and Updates.
- Right-click on the solution in Solution Explorer
- Open Command Prompt
- Run powershell
- Paste and run this: Get-ChildItem -include bin,obj -recu -Force | remove-item -force -recurse
Subtract 10 pts if you actually implement anything like this in real life code:
internal class Program
private static void Main(string args)
.Select(x => (x%3 == 0)
? (x%5 == 0)
: (x%5 == 0)
Caching is absolutely the most effective way to speed up the performance of an app. However, .NET does not have a reasonable tool for caching data, such as the contents of a database table, across all servers for all users.* There are third party tools that do this, but they are pricey.
A tool called AppFabric is available from Microsoft (for free) that spans the cache for all users across all web servers in a farm/garden/cluster. Downside: it’s only available for current operating systems like Windows 7, Vista, and Server 2008.
If you’re interested, here are some tutorials:
* .NET can cache data for all users on one server (using Cache), or for one user on all servers (using Session), but not for all users on all servers