Я столкнулся с проблемой при попытке неявного преобразования одного из моих динамических типов.Существуют две сборки с определениями, похожими на следующие:
Configuration.dll:
public class ConfigurationValue : DynamicObject
{
public ConfigurationValue(string val)
{
//...
}
//...
public static implicit operator string(ConfigurationValue val)
{
return val.ToString();
}
}
В этой dll есть еще один класс с именем Configuration
с переменной-членом, называемой Instance
(сделать класс синглтон).Эта переменная содержит ConfigurationValue
экземпляров в словаре и имеет динамический тип.Это позволяет мне сделать следующее:
Server.dll:
//...
if (Configuration.Instance.SecurityLevel != "Insecure")
{
//...
}
Предполагая, что SecurityLevel находится в словаре.Это выражение if в моем коде встречается дословно и всегда завершается ошибкой со следующей ошибкой:
{"Оператор"! = "Не может быть применен к операндам типа 'System.Dynamic.DynamicObject' и 'string'"}
Ранее, когда эти два класса находились в одной сборке, этот код работал нормально.Может кто-нибудь сказать мне, что я здесь делаю не так?
Спасибо,
Макс