【问题标题】:XmlSerializer 'Compiling JScript/CSharp scripts is not supported'XmlSerializer '不支持编译 JScript/CSharp 脚本'
【发布时间】:2021-11-25 23:21:46
【问题描述】:

我打算序列化一个二维数组。按照建议here 将其提供为锯齿状数组,并从锯齿状数组中组合回来:

        [XmlIgnore]
        public Rational[,] tab;

        public Rational[][] Data
        {
            get 
            {
                Rational[][] dt = new Rational[tab.GetLength(0)][];
                for (int i = 0; i < tab.GetLength(0); i++)
                {
                    dt[i] = new Rational[tab.GetLength(1)];
                    for (int j = 0; j < tab.GetLength(1); j++)
                        dt[i][j] = tab[i, j];
                }
                return dt;
            }
            set
            {
                tab = new Rational[ value.Length, value[0].Length ];
                for (int i = 0; i < tab.GetLength(0); i++)
                    for (int j = 0; j < tab.GetLength(1); j++)
                        tab[i, j] = value[i][j];
            }
        }

Rational 类型表示一个分数,可以是十进制 float 或 a/b 整数分数格式。我对Rational做了单独序列化,这个类型没有问题。
我在构造 XmlSerializer 的地方得到了这个异常:

正好扔在这个地方:

        XmlSerializer serializer = new XmlSerializer(typeof(SistemEcuatii));

这是包含序列化程序的代码

    class SistemEcuatiiModel
    {
        string baza;
        XmlSerializer serializer = new XmlSerializer(typeof(SistemEcuatii));
        SistemEcuatii data;
        public void WriteTo()
        {
            TextWriter writer = new StreamWriter(baza);
            serializer.Serialize(writer, data);
            writer.Close();
        }
        void LoadFromFile()
        {
            StreamReader streamer = new StreamReader(baza);
            SistemEcuatii dt = (SistemEcuatii)serializer.Deserialize(streamer);
            streamer.Close();
            data = dt;
        }

在互联网上搜索类似信息并没有提供一些有用的信息:
net-core-3-1-soap-platform-not-supported-error-compiling-jscript-csharp-script
Docs dot microsoft dot com
我尝试了github issues 的建议,但仍然无法正常工作

【问题讨论】:

    标签: c# .net xmlserializer


    【解决方案1】:

    github issues 的建议有效,不用担心

            [XmlArrayItemAttribute(typeof(Rational[]))]
            public Rational[][] Data
            {
                get 
                {
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 2011-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多