这是我的情景。 XML存储在SQL DB中。我需要允许用户编辑该XML的不同部分(无插入,只更新),如果发生了某些变化(以便我可以保存最后一个日期文件或节点被编辑),则会收到通知,然后将更新的XML保存到DB。
什么是最好的&这种情况下最快的方法?我希望将数据绑定表达式与XmlDataSource一起使用。但是,它只支持只读绑定(似乎)。
我是否可以使用内置于ASP.NET中的任何其他替代解决方案,允许数据绑定(为每个控件指定xpath)?还是我需要推出自己的解决方案?
如果推出我自己的解决方案,最好的方法是什么?
答案 0 :(得分:1)
您无需推出自己的解决方案,因为您可以轻松地让.Net框架为您完成繁重的任务。如果您正在使用数据绑定,则可以使用XSD工具从XML模式中为您生成CLR类(如果存在)。
生成类看起来像这样:
xsd / c / language:CS XSDSchemaFile.xsd
获得该对象后,在UI上像往常一样对该对象进行绑定。一旦准备好将这些更改传播到数据库,您就可以对对象进行XML序列化并将结果推送回数据库。
var serializer = new XmlSerializer(typeof (MyCustomType));
var stream = new MemoryStream();
var xw = new XmlTextWriter(stream, encoding);
serializer.Serialize(xw, instanceOfCustomType);
String xml = encoding.GetString(stream.ToArray());