首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用XmlSerializer时使用无参数构造函数

使用XmlSerializer时使用无参数构造函数
EN

Stack Overflow用户
提问于 2016-12-06 18:47:58
回答 1查看 1.6K关注 0票数 0

目前,我正在尝试复制(通过代码)一个.xml文件,并使用了许多不同的方法。然而,这种方式似乎是我得到的最多的一种方式,就像我以前得到的一样,但是我要创建一个console.writeline输出。在生成console.out布局时,我似乎无法让它为.xml工作。它给出了以下错误

“无法序列化,因为它没有无参数的构造函数”

有人能帮我做这个吗。

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
using System.Xml.Serialization;

namespace ConsoleApplication1
{
class Program
{
    const string FILENAME = @"SmallResults.xml";
    static void Main(string[] args)
    {
        List<BasicEvent> NewBasicEvent = new List<BasicEvent>();
        XmlTextReader fileReader = new XmlTextReader("SmallResults.xml");
        XmlDocument xml = new XmlDocument();
        xml.Load(fileReader);
        XmlNodeList BasicEvents = xml.SelectNodes("/HiP-HOPS_Results/FaultTrees/FMEA/Component/Events/BasicEvent");
        if (BasicEvents != null)
        {
            XmlNode[] nodearray = BasicEvents.Cast<XmlNode>().ToArray();
            for (int i = 0; i < BasicEvents.Count; i++)
            {
                NewBasicEvent.Add(new BasicEvent(nodearray[i].FirstChild.NextSibling.InnerText, nodearray[i].FirstChild.NextSibling.NextSibling.InnerText, nodearray[i].FirstChild.NextSibling.NextSibling.InnerText, nodearray[i].FirstChild.NextSibling.NextSibling.NextSibling.InnerText));
                new XmlSerializer(typeof(BasicEvent)).Serialize(Console.Out, nodearray );
            }
        }


    }
}
public class FMEA
{
    public List<Component> components { get; set; }
}
public class Component
{
    public string CompName { get; set; }
    public string BasicEventID { get; set; }
    public List<BasicEvent> basicevents { get; set; }
}
public class Events
{
}
public class BasicEvent
{
    public string BasicEventName { get; set; }
    public string BasicEventShortName { get; set; }
    public string BasicEventDescription { get; set; }
    public string BasicEventUnavalability { get; set; }
    public List<Effects> effects { get; set; }

    public BasicEvent( string basiceventname, string basiceventshortname, string basiceventdescription, string basiceventunavalability )
    {
        BasicEventName = basiceventname;
        BasicEventShortName = basiceventshortname;
        BasicEventDescription = basiceventdescription;
        BasicEventUnavalability = basiceventdescription;
    }
EN

回答 1

Stack Overflow用户

发布于 2016-12-06 18:49:44

异常中的信息非常清楚!

然后添加默认构造函数:

代码语言:javascript
复制
public BasicEvent( ){}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41002635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档