C# 动态 IEnumerable <class>

C# Dynamic IEnumerable <class>

任何人都知道如何将 IEnumerable<xxxxx> 传递给方法。 XXXXX 是指任何 class。 我想让它动态地接受任何 class。例如,<student><course><semester> 等。 目前固定为 Employee class.

public IEnumerable<Employee> GetJsonFile(string strFolder, string strFileName)
{
      string strFile = Path.Combine(WebHostEnvironment.WebRootPath, strFolder, strFileName);
      using (var jsonFileReader = File.OpenText(strFile))
      {
        return JsonSerializer.Deserialize<Employee[]>(jsonFileReader.ReadToEnd(), new JsonSerializerOptions { PropertyNameCaseInsensitive = true});
      }
}

使用泛型。 IEnumerable<T> 其中 T 是 class。 Generics Guide

而不是使用 <Employee> 使用 <T>

public IEnumerable<T> GetJsonFile<T>(string strFolder, string strFileName)
{
    ...return JsonSerializer.Deserialize<T[]>...
}

然后,当您调用该方法时,您为其提供类型。

var x = GetJsonFile<student>(folder,file);

更多信息请查找information on C# Generics