Tag: xml serialization

序列化和反序列化为XML文件,C#

我有以下代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ConsoleApplication28 { class Program { static void Main() { List dirs = FileHelper.GetFilesRecursive(@”c:\Documents and Settings\bob.smith\Desktop\Test”); foreach (string p in dirs) { Console.WriteLine(p); } //Write Count Console.WriteLine(“Count: {0}”, dirs.Count); Console.Read(); } static class FileHelper { public static List GetFilesRecursive(string b) { // 1. // […]

C#Castle ActiveRecord:如何优雅地(XML)序列化ActiveRecord对象?

我很难找到有关如何优雅地序列化ActiveRecord对象的信息。 我们希望使用XML作为格式,因为我们需要输出我们的对象,使得另一个程序能够可行地解析它们。 XML-Serialization通常很容易实现,但是在尝试序列化从ActiveRecord数据库返回的对象时会出现问题。 数据库返回对象的代理类,其类型不能通过[XmlInclude]属性明确预期。 例如: public class Foo : ActiveRecordLinqBase { public virtual string Bar{get;set;} public virtual int FooId{get;set;} public Foo(string bar) { Bar = bar; } public static void FooSerializeExample() { Foo tehFoozor = new Foo(“omgFoo!”); tehFoozor.SaveAndFlush(); int id = tehFoozor.FooId; //… //Assume new ActiveRecord session. XmlSerializer serializer = new XmlSerializer(typeof(Foo)); Foo tehFoozorToSerialize = […]

将类序列化为XML并包括CDATA部分时出现问题

我有一个序列化为XML的类供Web服务使用。 在这个类实例中,XML必须包含一个CDATA部分供Web服务读取,但我对如何实现它感到茫然。 XML需要如下所示: 2 <![CDATA[ … ]]> 我能够生成适当的XML,CDATA部分除外。 我的类结构如下: public class UpdateOrderStatus { public int Action { get; set; } public ValueInfo Value { get; set; } public UpdateOrderStatus() { Value = new ValueInfo(); } public class ValueInfo { public ShipmentInfo Shipment { get; set; } public ValueInfo() { Shipment = new ShipmentInfo(); } public […]

用于将IEnumerable 对象序列化为字符串数组的扩展方法?

我的最后一个问题是将序列化的对象的字符串表示forms化为XML 。 其中一个响应者编写了一个扩展方法来封装序列化过程。 我现在的问题是,当传递一个IEnumerable对象时,如何使用Extension方法返回一个字符串数组,其中数组中的每个string都是IEnumerable的单独序列化元素。 提前致谢!

使用字符串属性反序列化boolean元素

我正在尝试构建一个将使用此XML结构进行映射的类,但无法弄清楚如何。 我已经看过这里的示例,如果元素值是一个字符串,我可以使用[XmlText]。 在我的例子中,元素值是布尔值。 我应该如何构建我的“服务”课程? (我认为)我知道如何处理“服务”元素:-)。 它只是一组“服务”对象。 我只是不确定如何构建“服务”类。 true 我有这个: [XmlArray(“Services”)] [XmlArrayItem(“Service”)] public Service[] Services { get; set; } 还有这个: public class Service { [XmlAttribute] public string Name { get; set; } // How do I get the boolean value here????? }

使用XML序列化将属性放入不同的XML命名空间

我使用的是VSTS2008 + C#+ .Net 3.0。 我使用下面的代码来序列化XML,这是我当前的代码和序列化的XML文件。 我的目的是让MyInnerObjectProperties属于一个特殊的XML命名空间( http:// foo / 2009 )并将此命名空间作为默认命名空间。 任何想法如何实现这一点? 当前输出: Foo Type Goo Type 当前代码: public class MyClass { private MyObject[] _myObjectProperty; [XmlElement(IsNullable=false)] public MyObject[] MyObjectProperty { get { return _myObjectProperty; } set { _myObjectProperty = value; } } } public class MyObject { private MyInnerObject[] _myInnerObjectProperty; [XmlArrayItemAttribute(“MyInnerObjectProperty”, typeof(MyInnerObject), IsNullable=false)] public […]

XMLSerializer在序列化类时写入无效的XML(有时候)

我的目标是能够在应用程序之间共享配置设置。 例如,我希望能够使用WinForm应用程序来设置和保存设置,并让控制台应用程序能够读取这些设置并作为计划任务运行。 我尝试的方法是创建一个由Winform应用程序和控制台应用程序引用的SharedSettings类。 在这个类中,只有像这样的公共字符串属性。 public class SharedSettings { public string URL { get; set; } public string DestUser { get; set; } public string RelScript { get; set; } } 我使用以下命令序列化SharedSettings类的实例 SharedSettings settings = new SharedSettings(); settings.RelScript = this.txtRelScript.Text; settings.URL = this.txtURL.Text; settings.DestUser = this.txtDestUser.Text; XmlSerializer dehydrator = new XmlSerializer(settings.GetType()); System.IO.FileStream fs = new FileStream(this.configFilePath, […]

替代XML序列化配置

目前,我们使用一个与XML序列化的巨型配置对象。 这在大多数情况下运行良好,但我们发现在断电和应用程序崩溃的情况下,文件可能会处于使其无法正确反序列化的状态,从而有效地破坏配置信息。 我想使用内置的app.config,但它似乎不容易支持自定义类。 例如,使用XML序列化,我可以轻松地序列化通用list而无需额外的代码。 它只是有效。 似乎在使用app.config时,您必须提供大量信息和自定义类才能使用。 此外,大多数“自定义配置”教程大约来自2007年,可能已经过时了。 有没有人有关于在.NET 4.0中执行此操作的最新方法的信息? 另外,当应用程序出现问题时,由于配置不正确而导致9/10次。 App.config喜欢将用户可更改的设置存储在非常难以访问的位置,供不熟悉隐藏目录等的用户使用。 有没有办法让一个位置存储配置文件,用户可以在出现问题时轻松给我们发电子邮件? 或者,这是否比我记得它在2.0天的早期更容易? 有关如何轻松执行自定义app.config信息的任何链接或快速示例都会很棒。 作为另一个例子,这是我希望序列化为List的一种对象类型的精简版本,因为List的数量可以变化或为空。 有没有类似的方法在app.config中存储这样的东西? [Serializable] public class Alarm { [Serializable] public class AlarmSetting { public enum AlarmVariables { Concentration, RSquared } public enum AlarmComparisons { LessThan, GreaterThan } [Description(“Which entity is being alarmed on.”)] public AlarmVariables Variable { get; set; } [Description(“Method of […]

接口和抽象类中的Xml属性

我今天发现了一些困扰我的东西: 1.如果我有这个: public interface INamed { [XmlAttribute] string Name { get; set; } } public class Named : INamed { public string Name { get; set; } } 它提供以下输出(Name属性序列化为元素): Johan 2.如果我有这个: public abstract class NamedBase { [XmlAttribute] public abstract string Name { get; set; } } public class NamedDerived : NamedBase { public override string […]

XML文档中的错误(2,2)

我有一些xml文件,我试图在给定的代码中反序列化如下。 using (StreamReader srFileContent = new StreamReader(filePath)) { XmlSerializer serializer = new XmlSerializer(typeof(messageType)); messageType objMessage = (messageType)serializer.Deserialize(srFileContent); } 这里文件位于filePath不包含以下行 这就是我收到错误的原因。 在反序列化给定文件的流之前,您可以帮我如何添加此行运行时。 错误如下: System.InvalidOperationException:XML文档中存在错误(2,2)。 —> System.InvalidOperationException:没想到。 在Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReadermessageType.Read161_message()—内部exception堆栈跟踪结束—在系统的System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader,String encodingStyle,XmlDeserializationEvents事件) CCR2BB.frmMain.BWConvertProcess_DoWork()的.Xml.Serialization.XmlSerializer.Deserialize(TextReader textReader)