Как отключить приведение типов от интерфейса к классу, который реализует интерфейс - PullRequest
0 голосов
/ 15 декабря 2018

Как отключить приведение из интерфейса IFoo в класс Bar?Это вообще возможно?

Сборка одна

public interface IFoo
{
   string Name { get; }
}

public class Foo : IFoo
{
   public int SecretValue { get; private set; }
   public string Name     { get; private set; }
}

Сборка две

public class Bar : Foo
{
   private IFoo secretFoo;
}

Можно ли предотвратить бар отприведение secretFoo к типу Bar и, таким образом, доступ к значению SecretValue?

1 Ответ

0 голосов
/ 15 декабря 2018

Измените базовый класс Bar с Foo на IFoo, а свойство secretFoo с типа IFoo на Foo.

public class Bar : IFoo
{
    private Foo secretFoo;
    public string Name {
        get
        {
            return secretFoo.Name;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...