我正在使用第三方API来提取一些数据。包装器以列表数组类型保存。我已设法提取数据,但现在我想在.NET的控制台窗口中显示它。我认为使用它会很好:
Console.WriteLine(Obj.GetData(datapull));
但是,输出如下:
System.Collections.Generic.List`1[CompanyProduct.API.DataRequestItem]
我想我可以为每个循环使用a,但我不知道该怎么做,它似乎过于复杂,因为我只有一个值可以拉!但根据API文档,我必须使用List数组作为包装器。
我还尝试将列表转换为字符串,如下所示:
string dataCombined = string.Join( ",", datapull);
这也行不通,并打印出以下内容:
CompanyProduct.API.<name of class for data request>
任何人都可以帮助我,或者至少指出我正确的方向。我以为我想做的事情很简单!!!
感谢您的帮助。
杰
答案 0 :(得分:0)
这取决于您要打印到控制台的对象的哪些信息以及该类是否已实现/覆盖ToString()方法。如果未实现该方法(正常情况),则只将类型名称写入Console。 Console.WriteLine使用ToString()打印出对象。
由于您使用的是第三方API而无法更改ToString()方法的实现,因此您需要使用某种ObjectDumper,它会打印出一个对象及其所有属性和属性值。
ObjectDumper使用指定格式(如XML,JSON或custom)来创建对象的字符串表示形式。问题和回答c#中的ObjectDumper你可以找到here例如。将对象打印到xml的方法看起来像(取自链接):
private static string ObjectToXml(object objectToDump)
{
string xmlRepresentation;
System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(objectToDump.GetType());
using (System.IO.StringWriter sw = new System.IO.StringWriter())
{
try
{
xs.Serialize(sw, objectToDump);
xmlRepresentation = sw.ToString();
}
catch (Exception ex)
{
xmlRepresentation = ex.ToString();
}
}
return xmlRepresentation;
}