C# CsvHelper.CsvWriter.WriterRecords<;T>;(System.Collections.Generic.IEnumerable<;T>;)和#x27;已经过时了

C# CsvHelper.CsvWriter.WriterRecords<;T>;(System.Collections.Generic.IEnumerable<;T>;)和#x27;已经过时了,c#,csvhelper,C#,Csvhelper,我使用以下代码: IList users=\u service.GetUsers(); 在这里输入代码 使用(MemoryStream stream=new MemoryStream()) 使用(StreamWriter=新StreamWriter(流)) 使用(CsvWriter csv=新CsvWriter(编写器)){ csv.WriteRecords(reply.Users); } 我得到一个警告说: 'CsvHelper.CsvWriter.WriteRecords<T>

我使用以下代码:

IList users=\u service.GetUsers();
在这里输入代码
使用(MemoryStream stream=new MemoryStream())
使用(StreamWriter=新StreamWriter(流))
使用(CsvWriter csv=新CsvWriter(编写器)){
csv.WriteRecords(reply.Users);
}
我得到一个警告说:

'CsvHelper.CsvWriter.WriteRecords<T>(System.Collections.Generic.IEnumerable<T>)' is obsolete: 'This method is deprecated. Use WriteRecords( IEnumerable records ) instead.' 
“CsvHelper.CsvWriter.WriterRecords(System.Collections.Generic.IEnumerable)”已过时:“此方法已弃用。”。改用写记录(IEnumerable记录)。”
但是这不就是我用IList所做的吗

如何删除此警告

谢谢,, Miguel

WriteRecords(IEnumerable)方法将在编译期间分配给方法调用的编译时类型上工作,而不是在运行时类型上工作。通常,这两种行为的结果是相同的,但存在一些继承问题:如果尝试从基本类型(例如IWillBeCsv接口)创建csv文件,但保存这些实例的集合具有基本接口中描述的其他属性,会发生什么情况?它们不会仅序列化接口中定义的内容

检查源代码:

[Obsolete("This method is deprecated and will be removed in the next major release. Use WriteRecords( IEnumerable records ) instead.", false)]
public virtual void WriteRecords<T>(IEnumerable<T> records)
{
  this.CheckDisposed();
  this.WriteRecords((IEnumerable) records);
}

将列表强制转换为IEnumerable。

在大多数情况下可以忽略错误消息。它之所以存在,是因为有人继承了
CsvReader
。当不推荐的方法消失时,新方法将在读取时自动使用,并且不需要更改代码。
[Obsolete("This method is deprecated and will be removed in the next major release. Use WriteRecords( IEnumerable records ) instead.", false)]
public virtual void WriteRecords<T>(IEnumerable<T> records)
{
  this.CheckDisposed();
  this.WriteRecords((IEnumerable) records);
}
using (MemoryStream stream = new MemoryStream())
using (StreamWriter writer = new StreamWriter(stream))
using (CsvWriter csv = new CsvWriter(writer)) {
    csv.WriteRecords(_service.GetUsers() as IEnumerable);
}