gpt4 book ai didi

C# - 将字符串转换为类对象

转载 作者:行者123 更新时间:2023-11-30 15:43:41 25 4
gpt4 key购买 nike

我正在使用其他人的代码并尝试进行一些修改。所以我需要做的是采取以下措施:

RemoteFileDP remoteFile = new DPFactory().CreateRemoteFileDP(configData);

并更改它,使 remoteFile 可以等于字符串变量中的内容。为了进一步解释,让我给出更多的代码:

ConfigDP configData = new ConfigDP();

所以上面的语句在 remoteFile 语句之前执行,ConfigDP 在它上面有两个类(抽象 Config 和它的基础:抽象 ConfigBase)。 DP 也是它上面的两个抽象类(抽象 RemoteFile 和抽象 RemoteFileBase)的子类。

根据我的理解,remoteFile 是从数据库查询中提取的数据的结果,存储在列表或哈希表中(抱歉,我只是一名实习生,所以我正在处理这个问题)。

我需要 remoteFile 接受字符串值的原因是因为有许多方法利用 remoteFile 中的信息,我想避免必须创建一大堆接受字符串值而不是 RemoteFileDP remoteFile 的重载方法。

因此,如果我可以采用如下字符串值:

string locationDirectory;

从另一个方法传入,然后有类似下面的东西:

RemoteFileDP remoteFile = locationDirectory;

那么所有其他使用 remoteFile 的方法都不必重载或更改。

对不起,所有的细节,但这是我第一次发帖,所以我希望我提供了足够的信息。我确实看过C# Convert dynamic string to existing ClassC#: Instantiate an object with a runtime-determined type并编写了以下代码:

RemoteFilesDP remoteFile = (RemoteFileDP)Activator.CreateInstance(typeof(RemoteFileDP), locationDirectory);

然而,我不断收到“MissingMethodException”错误,表示未找到 RemoteFileDP 的构造函数,但我确实有如下所示的构造函数:

public RemoteFileDP()
{
} //end of RemoteFilePlattsDP constructor

提前感谢您的协助!

最佳答案

如果您不想修改(或不能)RemoteFileDP 所在的源项目,您可以编写如下扩展方法:

public static RemoteFileDP ConvertToRemoteFileDP(this string location)
{
// Somehow create a RemoteFileDP object with your
// location string and return it
}

这样你就可以运行你想要的代码行:

RemoteFileDP remoteFile = locationDirectory;

稍作修改如下:

RemoteFileDP remoteFile = locationDirectory.ConvertToRemoteFileDP();

这能解决您的问题吗?

关于C# - 将字符串转换为类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6618122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com