From 0f8bd2f7bd47fe49a896fce6446fee5077a49d00 Mon Sep 17 00:00:00 2001 From: Blaise Taylor Date: Mon, 16 Feb 2026 13:05:23 -0500 Subject: [PATCH 1/2] AB#43 Sonar menium issues. --- .../DesignerSerializationManagerTests.cs | 16 ++++++++++++++++ .../DesignerSerializationManager.cs | 6 +++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/LogicBuilder.ComponentModel.Design.Serialization.Tests/DesignerSerializationManagerTests.cs b/LogicBuilder.ComponentModel.Design.Serialization.Tests/DesignerSerializationManagerTests.cs index ceea72f..659b0b4 100644 --- a/LogicBuilder.ComponentModel.Design.Serialization.Tests/DesignerSerializationManagerTests.cs +++ b/LogicBuilder.ComponentModel.Design.Serialization.Tests/DesignerSerializationManagerTests.cs @@ -623,6 +623,22 @@ public void CreateInstance_ThrowsSerializationExceptionForMissingConstructor() } } + [Fact] + public void CreateInstance_ThrowsSerializationExceptionForMissingConstructor_WithNullParameters() + { + // Arrange + var manager = (IDesignerSerializationManager)new DesignerSerializationManager(); + + // Act & Assert + using (((DesignerSerializationManager)manager).CreateSession()) + { + var exception = Assert.Throws(() => + manager.CreateInstance(typeof(TestClassWithConstructor), null, "test", false)); + + Assert.Contains("TestClassWithConstructor", exception.Message); + } + } + [Fact] public void CreateInstance_ConvertsParametersForConstructor() { diff --git a/LogicBuilder.ComponentModel.Design.Serialization/DesignerSerializationManager.cs b/LogicBuilder.ComponentModel.Design.Serialization/DesignerSerializationManager.cs index f995dd8..3697ee1 100644 --- a/LogicBuilder.ComponentModel.Design.Serialization/DesignerSerializationManager.cs +++ b/LogicBuilder.ComponentModel.Design.Serialization/DesignerSerializationManager.cs @@ -532,7 +532,7 @@ protected virtual object CreateInstance(Type type, ICollection arguments, string { StringBuilder stringBuilder = new(); object[] array4 = array; - for (int l = 0; l < array4.Length; l++) + for (int l = 0; array4 != null && l < array4.Length; l++) { object obj2 = array4[l]; if (stringBuilder.Length > 0) @@ -630,7 +630,7 @@ public object GetSerializer(Type objectType, Type serializerType) Type runtimeType2 = this.GetRuntimeType(designerSerializerAttribute.SerializerTypeName); if (runtimeType2 != null) { - obj = Activator.CreateInstance(runtimeType2, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.CreateInstance, null, null, null); + obj = Activator.CreateInstance(runtimeType2, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.CreateInstance, null, null, null);// NOSONAR break; } } @@ -653,7 +653,7 @@ public object GetSerializer(Type objectType, Type serializerType) type = this.GetRuntimeType(defaultSerializationProviderAttribute.ProviderTypeName); if (type != null && typeof(IDesignerSerializationProvider).IsAssignableFrom(type)) { - IDesignerSerializationProvider designerSerializationProvider = (IDesignerSerializationProvider)Activator.CreateInstance(type, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.CreateInstance, null, null, null); + IDesignerSerializationProvider designerSerializationProvider = (IDesignerSerializationProvider)Activator.CreateInstance(type, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.CreateInstance, null, null, null);// NOSONAR ((IDesignerSerializationManager)this).AddSerializationProvider(designerSerializationProvider); } } From bcdebd28c6f634856f181386445436ebb5b2b2c0 Mon Sep 17 00:00:00 2001 From: Blaise Taylor Date: Mon, 16 Feb 2026 13:11:24 -0500 Subject: [PATCH 2/2] AB#43 SonarQube quality status badge. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fa3c8ff..7604a6d 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ [![Build Status](https://github.com/BpsLogicBuilder/LogicBuilder.ComponentModel.Design.Serialization/actions/workflows/ci.yml/badge.svg)](https://github.com/BpsLogicBuilder/LogicBuilder.ComponentModel.Design.Serialization/actions/workflows/ci.yml) [![CodeQL](https://github.com/BpsLogicBuilder/LogicBuilder.ComponentModel.Design.Serialization/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/BpsLogicBuilder/LogicBuilder.ComponentModel.Design.Serialization/actions/workflows/github-code-scanning/codeql) [![codecov](https://codecov.io/gh/BpsLogicBuilder/LogicBuilder.ComponentModel.Design.Serialization/graph/badge.svg?token=PFDB2PEVZT)](https://codecov.io/gh/BpsLogicBuilder/LogicBuilder.ComponentModel.Design.Serialization) +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=BpsLogicBuilder_LogicBuilder.ComponentModel.Design.Serialization&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=BpsLogicBuilder_LogicBuilder.ComponentModel.Design.Serialization) [![NuGet](https://img.shields.io/nuget/v/LogicBuilder.ComponentModel.Design.Serialization.svg)](https://www.nuget.org/packages/LogicBuilder.ComponentModel.Design.Serialization) ## Serialization Management