Зависимости доступа в методах расширения - PullRequest
0 голосов
/ 16 июня 2020

enter image description here

Как я могу получить доступ к свойству factory в MediaMuxer внутри этого метода расширения MergeChannels? возможно ли это?

public class MediaMuxer : IMediaMuxer
{
   protected readonly IProcessWorkerFactory factory;
   public MediaMuxer(IProcessWorkerFactory processFactory);
}

1 Ответ

4 голосов
/ 16 июня 2020

Нет, вы не можете получить доступ к полю factory, потому что оно защищено - оно будет доступно только из подкласса MediaMuxer, а методы расширения могут быть объявлены только в классах c stati, поэтому они могут Это не подклассы MediaMuxer. (И даже в этом случае он доступен только в экземпляре подкласса, в котором написан код доступа , а не просто произвольный MediaMuxer.)

Кроме того, даже если это было опубликовано c, muxer объявлены как IMediaMuxer, а не MediaMuxer, поэтому у вас будет доступ только к членам, объявленным в IMediaMuxer. Итак, в основном:

  • Если вы можете сделать его свойством publi c в IMediaMuxer, это сделает это
  • В противном случае сделайте его свойством publi c (скорее чем поле, если возможно) в MediaMuxer и измените первый параметр вашего метода расширения на тип MediaMuxer.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...