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

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

提前感谢您的帮助!

最佳答案

您缺少将 string 作为参数的构造函数。试试你的代码

public RemoteFileDP(string locationDirectory)
{
    // do stuff with locationDirectory to initialize RemoteFileDP appropriately
}

当然,如果这样做,为什么不直接调用构造函数呢?
RemoteFileDP remoteFile = new RemoteFileDP(locationDirectory);

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

10-11 18:47