diff --git a/src/dscom.demo/assembly5/ExplodeyBaseClass.cs b/src/dscom.demo/assembly5/ExplodeyBaseClass.cs index 1b7e75b..fa15457 100644 --- a/src/dscom.demo/assembly5/ExplodeyBaseClass.cs +++ b/src/dscom.demo/assembly5/ExplodeyBaseClass.cs @@ -4,4 +4,8 @@ namespace dSPACE.Runtime.InteropServices.DemoAssembly5; public class ExplodeyBaseClass : UserControl { + private sealed class PrivateImplementationDetails + { + // required to reproduce #259 + } } diff --git a/src/dscom/writer/LibraryWriter.cs b/src/dscom/writer/LibraryWriter.cs index 1044ca8..a6b13ec 100644 --- a/src/dscom/writer/LibraryWriter.cs +++ b/src/dscom/writer/LibraryWriter.cs @@ -97,11 +97,6 @@ private void CollectAllTypes() foreach (var type in types) { - if (type == null || type.Namespace is null) - { - continue; - } - var comVisibleAttribute = type.GetCustomAttribute(); if (typesAreVisibleForComByDefault && comVisibleAttribute != null && !comVisibleAttribute.Value) @@ -114,11 +109,17 @@ private void CollectAllTypes() continue; } + if (!type.IsPublic && !type.IsNestedPublic) { continue; } + if (type.Namespace is null) + { + continue; + } + if (type.IsGenericType) { continue;