Skip to content

Migration from doob.Reflectensions ​

Cocoar.Reflectensions v1.0.0 is the successor to doob.Reflectensions v6.4.2, with a new organization, simplified package structure, and zero external dependencies.

Package References ​

xml
<!-- Before -->
<PackageReference Include="doob.Reflectensions" Version="6.4.2" />
<PackageReference Include="doob.Reflectensions.CommonExtensions" Version="6.4.2" />
<PackageReference Include="doob.Reflectensions.Json" Version="6.4.2" />

<!-- After -->
<PackageReference Include="Cocoar.Reflectensions" Version="1.0.0" />
<!-- CommonExtensions merged into core — no separate package needed -->
<!-- Json removed — use System.Text.Json or Newtonsoft.Json directly -->

Namespace Updates ​

csharp
// Before
using doob.Reflectensions;
using doob.Reflectensions.ExtensionMethods;
using doob.Reflectensions.Json;

// After
using Cocoar.Reflectensions;
using Cocoar.Reflectensions.ExtensionMethods;
// Json namespace removed — use System.Text.Json

Package Changes ​

Old PackageActionNew Package
doob.ReflectensionsRenamedCocoar.Reflectensions
doob.Reflectensions.InvokeRenamedCocoar.Reflectensions.Invoke
doob.Reflectensions.ExpandableObjectRenamedCocoar.Reflectensions.ExpandableObject
doob.Reflectensions.CommonExtensionsMerged into coreCocoar.Reflectensions
doob.Reflectensions.JsonRemovedUse System.Text.Json directly
doob.Reflectensions.CodeDefinitionRemoved—
doob.Reflectensions.AspNetCoreRemoved—

JSON Migration ​

The JSON wrapper has been removed. Replace with System.Text.Json:

csharp
// Before (doob.Reflectensions.Json)
using doob.Reflectensions.Json;
var json = Json.Converter.ToJson(obj);
var obj = Json.Converter.ToObject<T>(json);

// After (System.Text.Json)
using System.Text.Json;
var json = JsonSerializer.Serialize(obj);
var obj = JsonSerializer.Deserialize<T>(json);

Type Name Strings ​

If you have hardcoded type name strings referencing the old namespace, update them:

csharp
// Before
TypeHelper.FindType("doob.Reflectensions.Tests.MyClass")

// After
TypeHelper.FindType("Cocoar.Reflectensions.Tests.MyClass")

Target Framework Changes ​

BeforeAfter
.NET 7.0.NET 8.0
.NET Framework 4.7.2— (removed)
.NET Standard 2.0.NET Standard 2.0 (kept)

If you were targeting .NET Framework 4.7.2 directly, you can still use Reflectensions through .NET Standard 2.0 compatibility (.NET Framework 4.6.1+).

What's New in v1.0.0 ​

  • Zero external dependencies — Newtonsoft.Json dependency removed
  • Nullable reference types enabled across all projects
  • Performance optimizations — hot paths for common conversions (8x faster for int to string)
  • 529 passing tests with CI/CD validation
  • Full XML documentation for IntelliSense

Released under the Apache-2.0 License.