Multiple fixes related to Dictionary.Keys bug by lostmsu · Pull Request #1786 · pythonnet/pythonnet

What does this implement/fix? Explain your changes.

This has individual commits for:

  1. bad name generation for nested classes which caused the type of Dictionary.Keys to be confused with the Dictionary itself
  2. quality of life change, that allows cast Generic.IEnumerable(obj), which previously required the generic type argument to be specified. E.g. Generic.IEnumerable[String](obj) was required
  3. collection mixins now cast objects to corresponding interfaces when the interfaces are implemented privately

Does this close any currently open issues?

fixes #1785

Checklist

Check all those that are applicable and complete.

  • Make sure to include one or more tests for your change
  • If an enhancement PR, please create docs and at best an example
  • Updated the CHANGELOG

@Martin-Molinero