我正在使用其他人的代码并尝试进行一些修改。所以我需要做的是采取以下措施:
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 Class 和 C#: 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/