尝试隐式转换我的一种动态类型时遇到问题。有两个程序集,其定义类似于以下内容:
配置.dll:
public class ConfigurationValue : DynamicObject
{
public ConfigurationValue(string val)
{
//...
}
//...
public static implicit operator string(ConfigurationValue val)
{
return val.ToString();
}
}
在这个 dll 中还有另一个类调用了一个名为(以使类单例)Configuration
的成员变量。Instance
该变量将ConfigurationValue
实例保存在字典中,并且是动态类型。这使我可以执行以下操作:
服务器.dll:
//...
if (Configuration.Instance.SecurityLevel != "Insecure")
{
//...
}
假设 SecurityLevel 在字典中。这个 if 语句逐字出现在我的代码中,并且总是失败并出现以下错误:
{“运算符'!='不能应用于'System.Dynamic.DynamicObject'和'string'类型的操作数”}
以前,当这两个类在同一个程序集中时,这段代码可以正常工作。谁能告诉我我在这里做错了什么?
谢谢,
马克斯