【问题标题】:Missing assembly reference ?缺少装配参考?
【发布时间】:2011-07-01 09:15:13
【问题描述】:

我有以下示例方法:

namespace Postcode_webservice
{    
    public class Business
    {
      public string getBusinessDossierno(string KVKnr)
        {
              StringBuilder resultaat = new StringBuilder();
              result = myserviceBusiness.businessGetDossierV3(KVKnr);

              string city = result.results[0].CorrespondenceCity;
              string postcode = result.results[0].CorrespondencePostcode;

              resultaat.Append(city);
              resultaat.Append(postcode);
              return resultaat.ToString();
        }
    }

    public class BusinessInfo
    {
    public string City { get; set; }
    public string PostCode { get; set; }
    public string bedrijfsNaam { get; set; }
    public string adres { get; set; }
    public int huisnr { get; set; }
    }
}

这会导致程序集引用错误。 (使用 System.Collections.Generic 已经添加)

【问题讨论】:

  • 能否请您在使用BusinessInfo 课程的位置发布信息?另外,找不到哪个程序集引用?
  • 附带说明,您不应该真正更改问题标题和正文(更改为不同的问题)。在这种情况下,已经发布的答案实际上没有意义,任何通过搜索找到此问题的人都会被答案迷惑。
  • 我发现了错误,是错误的名称。经过一整天的编程,您开始犯愚蠢的错误:) 感谢您的建议。

标签: c# json methods arraylist


【解决方案1】:

更好取决于你需要用它做什么。如果您要通过此客户端来填充列表框,那么我更喜欢 json。但是,如果要在服务器端使用,我会坚持使用 .Net 对象。

作为旁注,为了消除连接字符串以存储数据的愿望,我将定义一个包含城市和邮政编码的类型,如下所示:

public class MyAddressInfo
{
    public string City { get; set; }
    public string PostCode {get; set; }
}

然后使用这些数组(或列表):

List<MyAddressInfo> myList = new List<MyAddressInfo>();
foreach(var res in result.results)
{
    myList.Add(new MyAddressInfo
    {
        City = res.CorrespondenceCity,
        PostCode = res.CorrespondencePostcode
    });
}

然后返回上述列表。如果需要返回一个数组,可以这样做:

return myList.ToArray();

返回类型为MyAddressInfo[]

@托马斯: 根据您的评论,您的方法声明应如下所示:

public MyAddressInfo[] getBusinessDossierno(string KVKnr)
{
   // etc.
   return myList.ToArray();
}

当你像这样编译它时你看到的其他错误是什么?

【讨论】:

  • 不应该是 res.CorrespendenceCity 和 res.CorrespondencePostcode 而不是 result.results[0]?
  • 是的,我想这就是你的意思。 :)
  • 现在我得到一个缺少的程序集参考?错误。但是 MyAddressInfo 类在同一个命名空间中。
  • @Thomas:您能否发布您添加的内容(编辑您的问题)以便我们查看?实际上,可能是你没有看到 Listusing System.Collections.Generic; 会处理这个问题)
  • 使用 System.Collections.Generic 已添加到其中。这就是为什么我觉得这个错误很奇怪。关于那个 Json 数组,我猜你只需要转换列表?
【解决方案2】:

为什么不从方法中返回一个KeyValuePair&lt;string, string&gt;(或一些更合适的数据结构)的列表?

返回一个连接的城市名称和邮政编码字符串是一种混乱的解决方案,并且不会通过返回一个连接值的数组来变得更整洁。

return result.results.Select(r => new KeyValuePair<string, string>(r. CorrespondenceCity, r.CorrespondencePostcode));

【讨论】: