Xml序列化-默认构造函数
我有许多从抽象基类得出的类.这些派生的类需要序列化为XML,但是它们没有没有参数的构造函数.有大量的派生类,因此我不必回去并向它们添加一个无参数的构造函数. 我希望我可以使用基类可以做些什么,可以使它们序列化,而无需修改每个单独的类.有人对如何实现这一目标有任何想法吗? 这是类的基本示例: public abstract class MyBase { internal MyBase() { } //Various abstract properties here } public class MyDerivedClass : MyBase { //Various methods/Properties here } 解决方案 您将遇到的最大问题是,您无法为MyBase的实例审理,因为它是抽象的.这意味着您将需要做一些关于如何构建课程的事情. 您可能需要仅获取命中并添加适当的构造函数,即无参数构建器并依赖默认[Serializ
8 2024-04-26
编程技术问答社区
来自Entity Framework的C# XmlSerializer
我有两个类: [XmlInclude(typeof(Item))] public class A { public int Id { get; set; } [XmlArray("Items")] [XmlArrayItem("Item")] public virtual List Items { get; set; } = new List(); } public class Item { public int Id { get; set; } [XmlIgnore] public virtual A a { get; set; } } 我在DbContext内使用此方法: public virtual DbSet A { get; set; } public IQueryable GetA() { return A; } 现在我
4 2024-04-26
编程技术问答社区
我可以将BitArray序列化为XML吗?
我有一个我需要序列化XML的商务舱.它具有BitArray属性. 我已经用[XmlAttribute]装饰了它,但是序列化正在失败 为XML可序列化,从Icollection继承的类型必须在其继承层次结构的所有级别上都具有add(System.Boolean)的实现. system.collections.bitarray不实现add(system.boolean). 我不确定是否可以序列化XML? 如果不是,什么是序列化bitarray的有效手段 感谢您的查看 解决方案 您不能直接将bitarray序列化为XML.原因是,为了去除序列化,您需要一个添加方法,而bitarray不提供. 但是,您可以将其复制到可以序列化的数组: BitArray ba = new BitArray(128); int[] baBits = new int[4]; // 4 ints makes up 128 bits ba.CopyTo(baBits,
6 2024-04-26
编程技术问答社区
如何序列化一个整数值?
我刚刚开始使用XML序列化. 目前我有一个类,包含一个" x"属性: public class Offset { [XmlAttribute(AttributeName = "X")] public int X { get; set; } XML序列化生成类似: ^^^ | +--- looks like a string 我希望XML序列化看起来像: ^ | +--- I'd like an integer. 为了完成此操作,这就是我要做的: public class Offset { [XmlAttribute(AttributeName = "X", Da
2 2024-04-26
编程技术问答社区
C#如何从数据库中创建的XSD.EXE填充CASS
我目前正在处理一种我必须从数据库中导入大量数据并将其作为XML输出的情况,该XML匹配XSD架构.我使用xsd.exe生成了特定架构的C#类. 我的问题是,如何使用此类从数据库中填充带有数据? 我的班级看起来像这样:` [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.33440")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "TTC_Queue")] [S
8 2024-04-26
编程技术问答社区
将类序列化为属性
我有一个要序列化为属性的点类.这是我真正想要的例子: public class PointXY { [XmlIgnore] public Double X { get; set; } [XmlIgnore] public Double Y { get; set; } public override string ToString() { return Points; } } public class TestClass { [XmlAttribute] public PointXY Points { get; set; } } 测试类应序列化为: 我知道,如果使用IXMLSerializable接口实现了测试频道,则可以实现这一目标.但是我想要的点X应该将其自身作为属性而不是元素.是否可以?
2 2024-04-26
编程技术问答社区
创建xml格式c#
我想在c# 中制作这样的XML格式 1 20 21 5 22 我如何形成这样的形成,请帮助我 解决方案 您可以使用以下代码: XDocument doc = new XDocument(new XDeclaration("1.0", "us-ascii", null), new XElement("root", new XElement("key", new XAttribute("value", "22.wav"),
4 2024-04-26
编程技术问答社区
WCF通过JavaScript使用XML - 数组参数
我正在使用JavaScript通过XML通信到WCF服务(我无法使用JSON).到目前为止,这对于揭示"原始"数据类型的参数的WCF方法一直运行良好,但是现在我需要调用接受数组的WCF方法.我一直无法弄清楚如何正确调整XML. 例如,具有两个参数的WCF方法接受: value someOtherValue 我认为我可以通过以下几个数组(在这种情况下)传递(字符串)的数组:
8 2024-04-26
编程技术问答社区
如何告诉MessageQueue.SendMessageConnection如何将要发送的对象 "XML化"?
我正在用System.Messaging.MessageQueue.SendMessageConnection在C#中工作,用于发送一个对象,其中包含一些参数,例如: _sendQueue.Send(myObject, ...); 我的myObject是一个对象,包含一些属性,例如Field1. 我正在检查如何发送消息,使用: 计算机管理 服务和应用程序 消息排队 私人队列 打开右队列,在"队列消息"中,右键单击并检查"属性","身体". 在那里我看到了: 之类的标签 content_Field1 而不是这样,我希望看到类似的东西: content_Field1 在我的对象中的属性与我想使用的XML标签之间有轻松的映射? 预先感谢 解决方案 这实际上很容易.请访问 默认情况下,XML元素名称由类或成员名称确定.在一个名为书的简单类中,一个名为ISBN的字段将产生XML
8 2024-04-26
编程技术问答社区
使用xml元素/属性的XML去序列化
需要您的帮助来设置XML挑战的XML属性. 这是我的输入XML: AnswerforA AnswerforB AnswerforC 每个问题元素标签的ID与类属性相对应,其值是相应答案元素的内在文章. .cs文件看起来像 public class Test { private string qnaAns; private string qnbAns; private string qncAns; public string QnA { get{ return qnaAns;}
2 2024-04-26
编程技术问答社区
如何在Windows Phone 8中创建一个空的xml
我在我的WP8应用中创建一个空的XML文件 public static bool create() { Dictionary __data = new Dictionary(); XmlWriterSettings xmlWriterSettings = new XmlWriterSettings(); xmlWriterSettings.Indent = true; using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication()) { using (IsolatedStorageFileStream stream = myIsolatedStorage.OpenFile(
6 2024-04-26
编程技术问答社区
基于属性值的XML反序列化
我有一些我需要的XML a value another value 参加 之类的课 [XmlRoot(ElementName="element")] public class Element { public string MyKey1 { get; set; } public string MyKey2 { get; set; } } 我有可能注释mykey1和mykey2,以便如果上述XML被启用,那么MyKey1将是"值",而MyKey2将等于"另一个值"?如果不是这样,那么这样的最佳选择属性是什么? 解决方案 您可以使用XmlAttribute属性,但是您的XML似乎更适合Dictionary 使
4 2024-04-26
编程技术问答社区
c# System.Xml.Serialization不能通过Public List<T>的set方法。
我想使用system.xml.serialization回到我的类,但是我注意到使用列表属性的奇怪行为: 它从不调用设定方法,这使我失去了重要的信息... 我想避免切换序列化方法. public class Category { private string _name; private List _subCategories; private Category _parent; public string Name { get { return _name; } set { _name = value; } } public List SubCategories { get { return _subCategories; } set { _subCatego
2 2024-04-26
编程技术问答社区
给定System.Type T,反序列化List<T>。
我有许多我想序列化和序列化的类.我正在尝试创建一个函数,给定类型("用户","管理员","文章"等)将使用这些项目列表来序列化文件.例如: /* I want to be able to do this */ List allArticles = GetAllItems(typeof(Article)); 我无法弄清楚如何实现上述方法,但是我设法使此工作正常工作: /* BAD: clumsy method - have to pass a (typeof(List)) instead of typeof(Article) */ List allArticles = (List)GetAllItems(typeof(List)); /* Then later in the code... */ public static IList GetAllItems(System
2 2024-04-26
编程技术问答社区
如何将属性添加到序列化XML节点?
假设我有这样的C#类: [XmlRoot("floors")] public class FloorCollection { [XmlElement("floor")] public Floor[] Floors { get; set; } } 我想序列化并使用WCF发送到REST API.但是在发送之前,我需要以这种方式将属性添加到地板节点:... 有什么想法吗? 解决方案 只需将类型属性添加到您的集合类中: [XmlRoot("floors")] public class FloorCollection { [XmlAttribute("type")] public string Type { get; set; } [XmlElement("floor")] public Floor[] Floors { get; set; } } 其他
4 2024-04-26
编程技术问答社区
拥有一个从抽象类型扩展而来的成员的类的XML序列化
我尝试运行此代码时遇到InvalidOperationException. 示例代码 using System; using System.Collections.Generic; using System.IO; using System.Xml.Serialization; namespace XMLSerializationExample { class Program { static void Main(string[] args) { Caravan c = new Caravan(); c.WriteXML(); } } [XmlRoot("caravan", Namespace="urn:caravan")] public class Caravan { [XmlElement("vehicle")
10 2024-04-26
编程技术问答社区
在序列化中为基类字段定制XML-元素名称
在执行序列化时,如何更改从基类继承的字段的XML元素名称? 例如,我有下一个垒类: public class One { public int OneField; } 序列化代码: static void Main() { One test = new One { OneField = 1 }; var serializer = new XmlSerializer(typeof (One)); TextWriter writer = new StreamWriter("Output.xml"); serializer.Serialize(writer, test); writer.Close(); } 我得到了我需要的东西:
16 2024-04-25
编程技术问答社区
对所有 "新 "属性进行序列化基类实现
我有一堆从XSD自动生成的课程,并在我没有源代码的编译DLL中提供给我.我需要向每种类型添加接口,这导致了以下代码: public interface IBar { string SomeProperty { get; set; } } public interface IFoo where TBar : IBar { TBar Bar { get; set; } } public class BarWrapper : BarFromXSD, IBar { } public class FooWrapper : FooFromXSD, IFoo { [XmlElement("bar")] public new BarWrapper Bar { get { return base.Bar as BarWrapper; } set { base.Bar = value; }
8 2024-04-25
编程技术问答社区
如何用自定义对象的类型来序列化一个列表?
这是代码: [XmlRoot("Foo")] class Foo { [XmlElement("name")] string name; } [XmlRoot("FooContainer")] class FooContainer { [XmlElement("container")] List> lst { get; set; } } XmlSerializer s = new XmlSerializer(typeof(FooContainer)); -->Can't pass through this. 抱怨无法隐式地施放等等等等, 任何人都可以说出此代码有什么问题? 解决方案 foo和foocontainer需要公开.除此之外,这对我来说很好.必须稍微充实代码,但他的作品... class Pr
10 2024-04-25
编程技术问答社区
在多个程序集中使用自定义DataContractResolver
我在MEF应用程序中有以下设置: 组装 mybaseassembly : namespace My.Namespace { [DataContract] public class Container { [DataMember] public Data Item { get; set; } } [DataContract] public class Data { [DataMember] public string Foo { get; set; } } } 汇编第二组,参考 mybaseaseSembly : namespace My.Another.Namespace { [DataContract] public class SecondData : Data { [DataMember]
6 2024-04-25
编程技术问答社区