多级继承部分类

本文关键字:分类 继承部 多级 | 更新日期: 2023-09-27 18:03:50

我需要访问主类中的引用类并将值插入对象中。类是部分类型的。

我代码:

 public partial class Get_CountryInfo_Resp_object
        {
            public string ReturnCode { get; set; }
            public string ErrorMsg { get; set; }
            public string Alpha2_Code { get; set; }
            public string Digit3_Code { get; set; }
            public string CountryName { get; set; }
            public string IBAN_Mandatory { get; set; }
            public As_SenderCountry[] As_SenderCountry { get; set; }
            public As_ReceiverCountry[] As_ReceiverCountry { get; set; }
        }
        public partial class As_SenderCountry
        {
            public string SenderCountry_IsSensitive { get; set; }
        }
        public partial class As_ReceiverCountry
        {
            public string ReceiverCtry_EFTNotAllowed { get; set; }
            public ReceiverCtry_AllowedCCY_Item[] ReceiverCtry_AllowedCCY_List { get; set; }
        }
        public partial class ReceiverCtry_AllowedCCY_Item
        {
            public string ReceiverCtry_AllowedCCY { get; set; }
        }
        private static void Task2()
        {
            String xmlText = File.ReadAllText(@"../../XML/sample1.xml");
            DataSet ds = new DataSet();
            ds.ReadXml(new XmlTextReader(new StringReader(xmlText)));
            DataTable dt = ds.Tables["column"];
            Get_CountryInfo_Resp_object Get_CountryInfo_Resp = new Get_CountryInfo_Resp_object();
            //Get_CountryInfo_Resp.As_SenderCountry;
            Get_CountryInfo_Resp.ReturnCode = dt.Rows[0]["column_Text"].ToString();
            Get_CountryInfo_Resp.ErrorMsg = dt.Rows[1]["column_Text"].ToString();
            Get_CountryInfo_Resp.Alpha2_Code = dt.Rows[2]["column_Text"].ToString();
            Get_CountryInfo_Resp.Digit3_Code = dt.Rows[3]["column_Text"].ToString();
            Get_CountryInfo_Resp.CountryName = dt.Rows[4]["column_Text"].ToString();
            Get_CountryInfo_Resp.IBAN_Mandatory = dt.Rows[5]["column_Text"].ToString();
            //GetCountryInfo_Resp.As_SenderCountry.SenderCountry_IsSensitive

我需要将dt.Rows[6]["column_Text"].ToString();插入GetCountryInfo_Resp.As_SenderCountry.SenderCountry_IsSensitive。我该怎么做呢?请帮助。

多级继承部分类

由于As_SenderCountry是一个数组,它可以包含多个项。你还必须分配一个数组,而不仅仅是单个实例。

我将开始创建一个对象,将其添加到列表中,并最终从中创建一个数组(或将类型更改为列表而不是数组)。如果你已经知道数组的长度,你也可以固定数组的大小。

As_SenderCountry asc = new As_SenderCountry();
asc.SenderCountry_IsSensitive = dt.Rows[6]["column_Text"].ToString();

然后:

GetCountryInfo_Resp.As_SenderCountry = new As_SenderCountry[] { asc };

或者创建列表,遍历项目并最终赋值:

List<As_SenderCountry> list = new List<As_SenderCountry>();
// some sort of loop
As_SenderCountry asc = new As_SenderCountry();
...
list.Add(asc);
// end loop
GetCountryInfo_Resp.As_SenderCountry = list.ToArray();

我不认为我完全理解你的代码,但As_SenderCountryAs_ReceiverCountry在你的public partial class Get_CountryInfo_Resp_object是数组,如果我没有读错的话。

因此,混乱的解决方案,如果你知道只有一个发送方国家:
GetCountryInfo_Resp.As_SenderCountry[0].SenderCountry_IsSensitive = dt.Rows[6]["column_Text"].ToString();

或者,您可以使用列表——列表的优点是,在实例化时不需要知道数组的大小。一个带有变量的例子:

public partial class Get_CountryInfo_Resp_object
{
      public string ReturnCode { get; set; }
      ...
      public List<As_SenderCountry> As_SenderCountry { get; set; }
      public List<As_ReceiverCountry> As_ReceiverCountry { get; set; }
}
private static void Task2()
{
      String xmlText = File.ReadAllText(@"../../XML/sample1.xml");
      DataSet ds = new DataSet();
      ds.ReadXml(new XmlTextReader(new StringReader(xmlText)));
      DataTable dt = ds.Tables["column"];
      Get_CountryInfo_Resp_object Get_CountryInfo_Resp = new Get_CountryInfo_Resp_object();
      ...
      GetCountryInfo_Resp.As_SenderCountry.SenderCountry_IsSensitive.Add(dt.Rows[6]["column_Text"].ToString());

注。变量和类的命名非常混乱。我建议你把它清理干净,这样你和看问题的人都能更好地理解它。

您需要创建一个内部类的新实例,就像您通常为任何其他类所做的那样,然后为您需要的字段分配任何值。首先,您需要分配数组的长度,然后数组的每个单元格将包含类型(as_sendcountry)的对象的实例,然后您应该分配每个对象所需的值。

GetCountryInfo_Resp.As_SenderCountry = new GetCountryInfo_Resp.As_SenderCountry();
GetCountryInfo_Resp.As_SenderCountry[INDEX_HERE].SenderCountry_IsSensitive = dt.Rows[6]["column_Text"].ToString();