У меня возникли проблемы с явным интерфейсом, который я создал, и я получаю исключение,Декларирование Явные интерфейсы и не содержит ошибки определения C#
«х» не содержит определения для «у ', а метод расширения' y ', принимающий первый аргумент типа' x ', не найден
У меня есть серия классов. Базовый класс:
public interface IFactoryResponse
{
object instance { get; set; }
string instanceconfig { get; set; }
}
класс, который явно реализует его:
public class FactoryResponseImpl : IFactoryResponse
{
object IFactoryResponse.instance {
get { return ((IFactoryResponse)this).instance; }
set { ((IFactoryResponse)this).instance = value; }
}
string IFactoryResponse.instanceconfig {
get { return ((IFactoryResponse)this).instanceconfig; }
set { ((IFactoryResponse)this).instanceconfig = value; }
}
}
и в другом классе я получаю вышеуказанную ошибку. Visual Studio может найти интерфейс и класс ok, но он не может устранить свойство экземпляра. Что мне здесь не хватает. Вероятно, мне не хватает одного из более совершенных правил явного наследования.
if (facconfig.useabstract) {
response.instance = Activator.CreateInstance(m_entassembly.GetType(entconfig.Classname, true, true));
response.instanceconfig = facconfig.config;
} else {
Assembly assem = Assembly.LoadFrom(facconfig.assemblyfile);
object Obj = Activator.CreateInstance(assem.GetType(facconfig.Classname, true, true));
response.instance = Obj;
response.instanceconfig = facconfig.config;
}
Является ли интерфейс определенным в той же сборке? –
Это действительно определено в той же сборке – SoftwareSavant
, вам нужно отобразить объект в качестве этого интерфейса, после чего вы можете увидеть свойства –