public static XmlLiteDocument ToXml(IXmlConvertible objXmlConvertible, string strElementName) { if (objXmlConvertible == null) { throw new ArgumentNullException("objXmlConvertible", "A valid non-null IXmlConvertible is required."); } XmlLiteDocument objXmlLiteDocument = new XmlLiteDocument(strElementName); try { objXmlConvertible.WriteXml(objXmlLiteDocument.Root); } catch (Exception objException) { string strErrorMessage = "Unable to generate XML for the message type '" + objXmlConvertible.GetType().FullName + "."; throw new Exception(strErrorMessage, objException); } return(objXmlLiteDocument); }
public XslDataSource(IXmlConvertible dataSource) { DataSource = dataSource; }
public XslDataSource(string rootName, IXmlConvertible dataSource) { RootName = rootName; DataSource = dataSource; }
void SaveValueToStore <T>(ISettingsStore settingsStore, string key, T value, bool xmlConvertible, Type settingType) { object existingValue = null; bool valueRestorable = false; bool isNew = false; if (value == null) { settingsStore.Remove(key); } else { valueRestorable = settingsStore.TryGetValue(key, settingType, out existingValue); isNew = !valueRestorable; if (!xmlConvertible) { object savableValue = GetSavableValue(settingType, value); settingsStore[key] = savableValue; } else { object xmlRepresentationOfValue; try { IXmlConvertible convertible = (IXmlConvertible)value; var element = convertible.ToXElement(); xmlRepresentationOfValue = element.ToString(SaveOptions.None); } catch (Exception ex) { Debug.WriteLine("SettingsService.SetSetting error raised converting to XML." + settingType + " " + ex); if (RaiseExceptionsOnConversionErrors) { throw new SettingsException( "SettingsService.SetSetting error raised converting to XML. Value:" + value + ", Setting type:" + settingType, ex); } xmlRepresentationOfValue = GetSavableValue(settingType, value); } settingsStore[key] = xmlRepresentationOfValue; } } try { /* We attempt to save the value to the settings store. * If the value cannot be saved, we attempt to roll back. */ settingsStore.SaveAsync(); } catch (Exception ex) { try { if (valueRestorable) { settingsStore[key] = existingValue; } else if (isNew) { settingsStore.Remove(key); } if (valueRestorable || isNew) { settingsStore.SaveAsync(); } } catch (Exception ex2) { Debug.WriteLine("Unable to restore value after exception raised in SettingsService" + ex2); } if (RaiseExceptionsOnConversionErrors) { throw new SettingsException( "SettingsService.SetSetting error raised calling settingsStore.Save(). Value:" + value + ", Setting type:" + settingType, ex); } } }
public static XmlLiteDocument ToXml(IXmlConvertible objXmlConvertible) { return(ToXml(objXmlConvertible, objXmlConvertible.ElementName)); }