Re: How to declare my dll?
So you have a DLL and you don't want anyone but you to be able to access the classes inside? If so, you could pass some sort of encryption key to the class' constructor to verify. Other than that I'm not sure.
There may be a more elegant way...
Re: How to declare my dll?
It sounds to me like you need to declare the class(es) as sealed with the only constructor(s) declared private, then declare all members as static. If a class has no public constructors then you cannot instantiate it directly. If a class is sealed then you cannot inherit it to add a public constructor. If all members are declared static then you can access those members without an instance.