有没有办法将字符串转换为类型?

时间:2020-05-07 18:53:41

标签: c# generics

我正在学习C#中的泛型。因此,对于经验丰富的人来说,这可能很简单。

我有71种不同的模型,我希望能够将CSV中的数据一般存储到它们中。

处理部分不是超级难,我有这个方法签名:

private static async Task ProcessFileAsync<T>(string currentFile) where T : class, new()

困难的部分是调用。我要将数据放入的每个模型都有一个CSV文件。 CSV文件的名称与模型名称相同(例如:Product.csv对应于产品模型)。

理想情况下,我只想在调用方中发送名称,但是却收到“ X是变量,但像类型一样使用”的编译器错误。

我可以使用大量的switch语句来解决此问题,但这似乎相对浪费。

任何帮助将不胜感激。

换一种说法,我可以执行以下操作:

        switch(justFName)
        {
            case "Address":
                _ = ProcessFileAsync<Address>(ci.FullName);
                break;
            case "Currency":
                _ = ProcessFileAsync<Currency>(ci.FullName);
                break;
                ...
                ...
                ...And so on
                ...
                ...
            default:
                //No method for this file name
                break;
        }

相反,我想要这样的东西: _ = ProcessFileAsync<justFName>(ci.FullName);

0 个答案:

没有答案