Существует некий код
namespace App.BL.Model
{
public class A
{
public static A Instance = new A();
public void Operation1();
public Context GetContext()
{
Context context = new Context();
ContextItem item = new ContextItem();
context.Add(item);
return context;
}
public class Context
{
<modifier> void Add(ContextItem item);
<modifier> ContextItem this[int index];
}
private class ContextItem {}
}
}
namespace App.BL.Commands
{
public SomeCommand : Command
{
private Context context;
public override void Execute()
{
A.Instance.Operation1();
}
public override void SaveOldState()
{
context = A.Instance.GetContext();
}
}
}
Проблема состоит в том чтобы операции класса Context были доступны только в классе А, при том что класс ContextItem должен быть виден только в классе A. Восможно ли такое в C#? И если возможно, то, что надо написать вместо <modifier>.
Вариант internal void Add и internal class ContextItem не подходит, так как в SomeCommand можно обратиться к методу Add, и классу ContextItem.