Скорее всего, я не правильно описал свой заголовок, и мне совершенно не хватает терминологии для того, что я пытаюсь сделать ... так что, если вы читаете это и знаете, что я должен просить ... поделитесь.
Так вот моя проблема.Я создаю DLL.Эта DLL, конечно, будет иметь несколько классов внутри.Вызывающему решению потребуется доступ к этим классам и их различным методам.
Однако я хочу заставить вызывающую программу создавать только экземпляр класса "Parent \ Root", потому что мне требуется определенная информация в любое время, когда онисобираюсь использовать все, что является частью этого класса (думаю, что-то вроде лицензионного ключа, но не совсем).
Итак, с точки зрения клиента .. Я хочу, чтобы это работало так ...
FooDll.Client myFooClient = new FooDLL.Client(myLicensesKey)
myFooClient.Store.PlaceOrder()
myFooClient.Shop.FixWidget()
Теперь, с моей стороны DLL, я думал что-то вроде этого ...
public class Client
{
public StoreLogic Store {get;} //This is a internal Class that contains the method PlaceHolder
public ShopLogic Shop {get;} //This is an internal Class that contains the method FixWidget
public Client(string LicenseKey)
{
set some internal global flags for the entire library
}
}
Теперь я могу сделать это сейчас, пока я объявляю классы StoreLogic и ShopLogic как "Public".но если я сделаю это, клиент теперь может сделать это ...
FooDll.StoreLogic myStore = new FooDLL.StoreLogic()
Что я не хочу.