Как работают директивы using и ссылки на сборки для классов, реализующих интерфейсы - PullRequest
0 голосов
/ 06 мая 2020

В моем приложении для реагирования у меня есть класс C#, который содержит свойство типа, реализующего интерфейс. Я заметил, что нет оператора using для этого типа / класса, но есть оператор для интерфейса, который он реализует (с использованием шаблона проектирования декоратора). Теперь я добавил новый класс в новый файл, но в том же каталоге, что и первый тип свойства. Поскольку пространства имен должны представлять структуру каталогов, я поместил класс в одно и то же имя пространства имен, но я получаю ошибку « using директива или ссылка на сборку ».

Почему первый тип не нуждается в той же директиве using, что и второй тип?

Edit: Оказывается, PropertyType на самом деле является ExampleInterface, поэтому возникает вопрос, как добавить правильный Оператор using для NewPropertyType, который должен быть обнаружен ExampleClass

Класс, содержащий два свойства типа в некотором случайном пространстве имен:

namespace Directory.Sub1.Sub2
{
    public class ExampleClass
    {
        public PropertyType PropertyType { get; set; }
        public NewPropertyType NewPropertyType { get; set; }

    }
}

Первый класс / тип, реализующий интерфейс

namespace Directory.Sub1.Sub2.Sub3.Sub4
{
    public class PropertyType : ExampleInterface
    {
        ...
    }
}

Новый класс / тип, который я добавил в тот же каталог

namespace Directory.Sub1.Sub2.Sub3.Sub4
{
    public class NewPropertyType // doesn't inherit from the interface because it is a different implementation
    {
        ...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...