In the meantime with CLS compliant assemblies this can be done:
- using generics within the classes is not a problem
- having generic classes as arguments of public/protected methods, both a generic and an alternate version can be supplied. The generic version is marked with the attribute [CLSCompliant(false)], while the alternate version is CLS compliant.
With the Longhorn timeframe the non-generic version can be marked obsolete.