mã sau chỉ định một loại "MyBase64Binary" được bắt nguồn từ một lớp cơ sở "TestBase"XmlSerializer lỗi constructor với lớp có nguồn gốc từ một lớp cơ sở
using System;
using System.Xml.Serialization;
using System.Collections;
using System.Xml.Schema;
using System.ComponentModel;
namespace Test
{
public class TestBase
{
public TestBase()
{
}
}
[XmlType(TypeName = "base64Binary"), Serializable]
public partial class MyBase64Binary : TestBase
{
[System.Xml.Serialization.XmlTextAttribute(DataType = "base64Binary")]
[EditorBrowsable(EditorBrowsableState.Advanced)]
public Byte[] __Value;
[XmlIgnore]
public Byte[] Value
{
get { return __Value; }
set { __Value = value; }
}
public MyBase64Binary()
{
}
}
}
Nếu tôi cố gắng để tạo ra một XmlSerializer như
nàyusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
namespace Test1
{
class Program
{
static void Main(string[] args)
{
XmlSerializer s = new XmlSerializer(typeof(Test.MyBase64Binary));
}
}
}
từ này sau đó tôi nhận được một lỗi InvalidOperationException:
{"There was an error reflecting type 'Test.MyBase64Binary'."}
Và Ngoại lệ bên trong cho tôi biết như sau:
{"Cannot serialize object of type 'Test.MyBase64Binary'. Consider changing type of XmlText member 'Test.MyBase64Binary.__Value' from System.Byte[] to string or string array."}
Nếu tôi không lấy được từ lớp "TestBase" thì tất cả đều hoạt động tốt.
Tôi không nhận được giải pháp. Hãy giúp tôi.
Có gì sai?
Chúc mừng từ Đức
Jan
+1, vấn đề là thuộc tính, nó không liên quan gì đến lớp cơ sở. –
Xe tăng! Dường như làm việc! Nhưng tại sao bộ nối tiếp hoạt động nếu bỏ lớp cơ sở và không lấy được? Trường hợp ngoại lệ cũng không xảy ra? –
@Jan Trải nghiệm cùng một vấn đề. Nếu lớp cơ sở bị bỏ qua thì nó hoạt động. Bằng cách nào đó hành vi kỳ lạ ... – Sven