Vorrei creare una libreria composta da due livelli, chiamiamoli A e B. Ci dovrebbe essere una classe "Sample" nel layer A. Il layer B conosce anche la classe "Sample" e la ingrandisce con alcuni metodi.
Quindi mi piacerebbe avere un altro progetto, facendo riferimento a questa libreria, così posso avere i seguenti scenari per un'istanza di "Sample", chiamiamola sample_instance:
1) using A;
Digitando "sample_instance.", Intellisense mostrerà tutti i metodi definiti nel layer A.
2) using B;
Digitando "sample_instance.", Intellisense mostrerà tutti i metodi definiti nel layer B.
3) using A;
using B;
Digitando "sample_instance.", Intellisense mostrerà tutti i metodi definiti nei layer A e B.
Ci sto pensando da molti giorni, ma non sono in grado di trovare una soluzione adeguata. Ho sperimentato con i metodi di estensione nel livello B, che fa in modo che lo scenario 1) e 3) funzionino. Ma non posso realizzare 2) in questo modo, perché il progetto non conosce la classe "Sample" se faccio solo "using B".
Qualcuno ha una buona idea, come progettarlo?