Приятелски методи и класове в C#

Има ли аналози на приятелски методи и класове в C#? Трябва да получите достъп до частно поле и метод от частен клас от друг клас.

Ситуация от реален проект:

Обект от класа Element може да бъде създаден от потребителя на приложението в неговата програма. В същото време има обект SChart, който също може да бъде създаден и използван от потребителя в техните програми. Някои методи от класа Element не могат да бъдат извикани от потребителя на приложението, защото не е необходимо (този метод се използва от други публични методи от същия клас). Има смисъл да декларирате този метод като частен. В същото време обект от класа SChart трябва да има достъп до този частен метод от класа Element. Ако в този случай отворим достъп (направим отворен метода на класа Element), тогава ще го отворим за потребителя на приложението, който ще използва както Element, така и SChart. Как да решим този проблем в този случай?

Ако по някакъв начин извратим, тогава така, че потребителят на класа Element да не бъде засегнат, т.е. за обикновен потребител на класа Element методът трябва да е частен (вместо публичен, но с допълнителен параметър).

Между другото, аналогът на вътрешния във VB .NET се нарича Friend-druh!

това означава, че трябва да поставите Element и SChart в един сбор и да декларирате този метод като вътрешен

друга възможност е да преместите този метод в интерфейс, за който само SChart ще знае (интерфейс като начин за комуникация на "приятели" :)) разбира се, този интерфейс може да се изчисли чрез отражение, но личният и вътрешният могат да бъдат изчислени чрез едно и също отражение и т.н.

Относно вътрешния: заюзат ток днес. Изглежда, че работи. За тази сметка мога уф, смятай. 0/.

Между другото, чрез атрибутите на методите можетенаправи достъпен за произволно сглобяване (не само текущото).