From a1ad74c6ab6c9e074acbb3787fedafa98785f8cc Mon Sep 17 00:00:00 2001 From: Sebastian Osterbrink Date: Mon, 1 Jul 2024 13:06:11 +0200 Subject: [PATCH 1/3] fix: moved namespace check to a later position --- src/dscom/writer/LibraryWriter.cs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) 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; From 585abea430a5ec8e7e1b1c44fa7eb8b81152ce27 Mon Sep 17 00:00:00 2001 From: Sebastian Osterbrink Date: Mon, 1 Jul 2024 13:06:32 +0200 Subject: [PATCH 2/3] fix: Added code example reproduces #259 before the bugfix --- src/dscom.demo/assembly5/ExplodeyBaseClass.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/dscom.demo/assembly5/ExplodeyBaseClass.cs b/src/dscom.demo/assembly5/ExplodeyBaseClass.cs index 1b7e75b..adf3e75 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 class PrivateImplementationDetails + { + // required to reproduce #259 + } } From 221562309bdfd938077bc76b89c82c2bbad31106 Mon Sep 17 00:00:00 2001 From: Sebastian Osterbrink Date: Mon, 1 Jul 2024 13:59:39 +0200 Subject: [PATCH 3/3] chore: fixed code style warning in demo class --- src/dscom.demo/assembly5/ExplodeyBaseClass.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dscom.demo/assembly5/ExplodeyBaseClass.cs b/src/dscom.demo/assembly5/ExplodeyBaseClass.cs index adf3e75..fa15457 100644 --- a/src/dscom.demo/assembly5/ExplodeyBaseClass.cs +++ b/src/dscom.demo/assembly5/ExplodeyBaseClass.cs @@ -4,7 +4,7 @@ namespace dSPACE.Runtime.InteropServices.DemoAssembly5; public class ExplodeyBaseClass : UserControl { - private class PrivateImplementationDetails + private sealed class PrivateImplementationDetails { // required to reproduce #259 }