//http://validationframework.codeplex.com/ //License: Microsoft Permissive License (Ms-PL) v1.1 using System; using System.Xml; namespace ValidationFramework.Extensions { public static class XmlElementExtensions { /// <summary> /// weakly typed /// </summary> /// <param name="element"></param> /// <param name="key"></param> /// <returns></returns> internal static object GetAttributeWithConversion(this XmlElement element, Type typeToConvertTo, string key) { if (!element.HasAttribute(key)) throw new ArgumentOutOfRangeException(string.Format("The key '{0}' cannot be found in xml element.", key)); var stringValue = element.GetAttribute(key); var converter = System.ComponentModel.TypeDescriptor.GetConverter(typeToConvertTo); return converter.ConvertFromString(stringValue); } } }