Единственное, о чем я могу даже подумать, это protected internal
, но это не ограничивает его конкретным классом. Единственный знакомый мне знакомый в c # - это сборка друга. Все еще не ограничивается определенным классом.
Единственное, что я мог придумать, это попытаться сделать что-то вроде следующего:
public class A
{
public A() {}
protected internal A(B b) {}
}
public class B
{
A myVersion;
public B()
{
myVersion = A(this);
}
}
Единственный другой способ, которым я мог бы придумать, - это сделать что-то вроде Constructor Injection, используя отражение, которое делается внутри класса вашего друга. Механизм впрыска позволит вам ограничить его тем, что вы хотите, но может быть очень громоздким. Взгляните на что-то вроде Spring.Net и ознакомьтесь с некоторыми возможностями впрыска.