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。
任何人都知道如何将 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。