C# 获取错误“;您必须在System.Array上实现默认访问器";

C# 获取错误“;您必须在System.Array上实现默认访问器";,c#,exception-handling,ado.net,anonymous-types,C#,Exception Handling,Ado.net,Anonymous Types,我有以下代码和web方法: public class RaumklassenHelper { internal static Array Raumklasse() { List<object> raumKlassenObject = new List<object>(); using (SqlConnection con = new SqlConnection(@"Data Source=Localhost\SQLEXPRESS;

我有以下代码和web方法:

public class RaumklassenHelper
{
   internal static Array Raumklasse()
   {
       List<object> raumKlassenObject = new List<object>();

       using (SqlConnection con = new SqlConnection(@"Data Source=Localhost\SQLEXPRESS;Initial Catalog=BOOK-IT-V2;Integrated Security=true;"))
       using (SqlCommand cmd = new SqlCommand(@"SELECT BEZEICHNUNG, BEZEICHNUNG_EN FROM RAUMKLASSE", con))
       {
           con.Open();
           using (SqlDataReader rdr = cmd.ExecuteReader())
           {
               while (rdr.Read())
               {
                   if (rdr["BEZEICHNUNG"] != DBNull.Value && rdr["BEZEICHNUNG_EN"] != DBNull.Value)
                   {
                       raumKlassenObject.Add(new
                           {
                               Name = rdr["BEZEICHNUNG"].ToString(),
                               Name_En = rdr["BEZEICHNUNG_EN"].ToString()
                           });
                   }
               }
           }
       }
       return raumKlassenObject.ToArray();
   }
}



 [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
   [WebMethod]
   public Array Raumklasse()
   {
       return RaumklassenHelper.Raumklasse();
   }

尝试使用对象[]作为返回类型而不是数组


关于另一个问题:

    public class RaumklassenHelper
{

        public class RAUMKLASSE
        {
            public string Name { get; set; }
            public string Name_En { get; set; }
        }


        internal static List<RAUMKLASSE> Raumklasse()
   {
       List<RAUMKLASSE> raumKlassenObject = new List<RAUMKLASSE>();

       using (SqlConnection con = new SqlConnection(@"Data Source=Localhost\SQLEXPRESS;Initial Catalog=BOOK-IT-V2;Integrated Security=true;"))
       using (SqlCommand cmd = new SqlCommand(@"SELECT BEZEICHNUNG, BEZEICHNUNG_EN FROM RAUMKLASSE", con))
       {
           con.Open();
           using (SqlDataReader rdr = cmd.ExecuteReader())
           {
               while (rdr.Read())
               {
                   if (rdr["BEZEICHNUNG"] != DBNull.Value && rdr["BEZEICHNUNG_EN"] != DBNull.Value)
                   {
                       raumKlassenObject.Add(new RAUMKLASSE()
                           {
                               Name = rdr["BEZEICHNUNG"].ToString(),
                               Name_En = rdr["BEZEICHNUNG_EN"].ToString()
                           });
                   }
               }
           }
       }
       return raumKlassenObject;
   }
}



 [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
   [WebMethod]
   public List<RAUMKLASSE> Raumklasse()
   {
       return RaumklassenHelper.Raumklasse();
   }
公共类RaumklassenHelper
{
公共级劳姆格拉斯
{
公共字符串名称{get;set;}
公共字符串名称{get;set;}
}
内部静态列表Raumklasse()
{
List raumKlassenObject=新列表();
使用(SqlConnection con=newsqlconnection(@“数据源=Localhost\SQLEXPRESS;初始目录=BOOK-IT-V2;集成安全性=true;”)
使用(SqlCommand cmd=newsqlcommand(@“从RAUMKLASSE选择Bezeichung,Bezeichung_EN”,con))
{
con.Open();
使用(SqlDataReader rdr=cmd.ExecuteReader())
{
while(rdr.Read())
{
if(rdr[“bezeichung”!=DBNull.Value&&rdr[“bezeichung_EN”!=DBNull.Value)
{
添加(新的RAUMKLASSE()
{
Name=rdr[“BEZEICHNUNG”].ToString(),
Name_En=rdr[“bezeichung_En”]。ToString()
});
}
}
}
}
返回raumKlassenObject;
}
}
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
[网络方法]
公共列表Raumklasse()
{
返回RaumklassenHelper.Raumklasse();
}

尝试使用object[]作为返回类型,而不是数组


关于另一个问题:

    public class RaumklassenHelper
{

        public class RAUMKLASSE
        {
            public string Name { get; set; }
            public string Name_En { get; set; }
        }


        internal static List<RAUMKLASSE> Raumklasse()
   {
       List<RAUMKLASSE> raumKlassenObject = new List<RAUMKLASSE>();

       using (SqlConnection con = new SqlConnection(@"Data Source=Localhost\SQLEXPRESS;Initial Catalog=BOOK-IT-V2;Integrated Security=true;"))
       using (SqlCommand cmd = new SqlCommand(@"SELECT BEZEICHNUNG, BEZEICHNUNG_EN FROM RAUMKLASSE", con))
       {
           con.Open();
           using (SqlDataReader rdr = cmd.ExecuteReader())
           {
               while (rdr.Read())
               {
                   if (rdr["BEZEICHNUNG"] != DBNull.Value && rdr["BEZEICHNUNG_EN"] != DBNull.Value)
                   {
                       raumKlassenObject.Add(new RAUMKLASSE()
                           {
                               Name = rdr["BEZEICHNUNG"].ToString(),
                               Name_En = rdr["BEZEICHNUNG_EN"].ToString()
                           });
                   }
               }
           }
       }
       return raumKlassenObject;
   }
}



 [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
   [WebMethod]
   public List<RAUMKLASSE> Raumklasse()
   {
       return RaumklassenHelper.Raumklasse();
   }
公共类RaumklassenHelper
{
公共级劳姆格拉斯
{
公共字符串名称{get;set;}
公共字符串名称{get;set;}
}
内部静态列表Raumklasse()
{
List raumKlassenObject=新列表();
使用(SqlConnection con=newsqlconnection(@“数据源=Localhost\SQLEXPRESS;初始目录=BOOK-IT-V2;集成安全性=true;”)
使用(SqlCommand cmd=newsqlcommand(@“从RAUMKLASSE选择Bezeichung,Bezeichung_EN”,con))
{
con.Open();
使用(SqlDataReader rdr=cmd.ExecuteReader())
{
while(rdr.Read())
{
if(rdr[“bezeichung”!=DBNull.Value&&rdr[“bezeichung_EN”!=DBNull.Value)
{
添加(新的RAUMKLASSE()
{
Name=rdr[“BEZEICHNUNG”].ToString(),
Name_En=rdr[“bezeichung_En”]。ToString()
});
}
}
}
}
返回raumKlassenObject;
}
}
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
[网络方法]
公共列表Raumklasse()
{
返回RaumklassenHelper.Raumklasse();
}

Thx,解决了我的问题!:)嘿,艾哈迈德,你能再帮我一次吗。现在,如果我试图调用我的Webmethod,我会得到一个System.InvalidOperationException。我用错误更新了我的问题,为什么要创建匿名类型?尝试创建一个具有公共空构造函数的新类,并在其中添加2个属性(Name,Name_EN),使您的webmethod返回iti的IList,而不是创建匿名类型。这个错误以前没有发生过,我什么也没改。你能举个例子吗,你的确切意思是什么?Thx,这解决了我的问题!:)嘿,艾哈迈德,你能再帮我一次吗。现在,如果我试图调用我的Webmethod,我会得到一个System.InvalidOperationException。我用错误更新了我的问题,为什么要创建匿名类型?尝试创建一个具有公共空构造函数的新类,并在其中添加2个属性(Name,Name_EN),使您的webmethod返回iti的IList,而不是创建匿名类型。这个错误以前没有发生过,我什么也没改。你能举个例子吗?你的确切意思是什么?