Skip to content

Commit 0e14f30

Browse files
committed
feat: netstandard2.0 support, AOT improvements
1 parent 7b709d6 commit 0e14f30

27 files changed

+125
-63
lines changed

build/Build.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ protected override void OnBuildInitialized()
115115

116116
DotNetTest(x => SetDefaultOptions(x)
117117
.SetProjectFile(test)
118-
.SetFramework("net9.0"));
118+
.SetFramework("net10.0"));
119119
}
120120
});
121121

src/NuGetPackage.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
<Platforms>AnyCPU;x64;x86</Platforms>
55

66
<Authors>Snowberry Software</Authors>
7-
<AssemblyVersion>1.0.4.0</AssemblyVersion>
7+
<AssemblyVersion>1.1.0.0</AssemblyVersion>
88
<VersionPrefix>$(AssemblyVersion)</VersionPrefix>
9-
<VersionSuffix>alpha</VersionSuffix>
9+
<!-- <VersionSuffix>alpha</VersionSuffix> -->
1010

1111
<IsPackable>true</IsPackable>
1212

src/PolySharp.props

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
<Project>
22

33
<PropertyGroup>
4-
<PolySharpExcludeGeneratedTypes>*</PolySharpExcludeGeneratedTypes>
54
<PolySharpIncludeRuntimeSupportedAttributes>true</PolySharpIncludeRuntimeSupportedAttributes>
65

76
<PolySharpIncludeGeneratedTypes>
7+
System.Runtime.CompilerServices.IsExternalInit;
8+
System.Runtime.CompilerServices.RequiredMemberAttribute;
9+
System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute;
10+
System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute;
11+
System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute;
812
System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute;
9-
System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes;
10-
System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute;
1113
System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute;
12-
System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute;
13-
System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute;
14+
System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes;
1415
</PolySharpIncludeGeneratedTypes>
1516
</PropertyGroup>
1617

src/Snowberry.Mediator.Abstractions/Snowberry.Mediator.Abstractions.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,5 @@
1717
</ItemGroup>
1818

1919
<Import Project="../NuGetPackage.props" />
20+
<Import Project="../PolySharp.props" />
2021
</Project>

src/Snowberry.Mediator.DependencyInjection.Shared/Contracts/IServiceContext.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@ public interface IServiceContext
2828
/// <param name="serviceType">The service type.</param>
2929
/// <param name="implementationType">The implementation type.</param>
3030
/// <param name="lifetime">The service lifetime.</param>
31-
void TryRegister(Type serviceType, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] Type implementationType, RegistrationServiceLifetime lifetime);
31+
void TryRegister(Type serviceType, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicProperties)] Type implementationType, RegistrationServiceLifetime lifetime);
3232

3333
/// <summary>
3434
/// Registers a singleton instance of a service.
3535
/// </summary>
3636
/// <param name="serviceType">The service type.</param>
3737
/// <param name="instance">The instance type.</param>
38-
void TryRegister(Type serviceType, object instance);
38+
void TryRegister([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicProperties)] Type serviceType, object instance);
3939
}

src/Snowberry.Mediator.DependencyInjection.Shared/DependencyInjectionHelper.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ public static void ScanAssembly(MediatorOptions options, HandlerCollection handl
155155
handlerCollection.AllNotificationHandlers.Add(scanResult.NotificationHandlerTypes[j]);
156156
}
157157

158-
private static void AddPipelineBehaviors<TGlobalPipelineInterface, TGlobalPipelineRegistry, THandlerInfo>(
158+
private static void AddPipelineBehaviors<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicProperties)] TGlobalPipelineInterface, TGlobalPipelineRegistry, THandlerInfo>(
159159
IServiceContext serviceContext,
160160
RegistrationServiceLifetime serviceLifetime,
161161
IList<THandlerInfo> pipelineBehaviorHandlers,
Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,23 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net10.0;net9.0</TargetFrameworks>
4+
<TargetFrameworks>net10.0;net9.0;netstandard2.0</TargetFrameworks>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
7-
<IsAotCompatible>true</IsAotCompatible>
7+
<LangVersion>latest</LangVersion>
88

99
<!-- Package -->
1010
<Description>A small helper library for supporting multiple Dependency Injection frameworks.</Description>
1111
</PropertyGroup>
1212

13+
<PropertyGroup Condition="$(TargetFramework) != 'netstandard2.0'">
14+
<IsAotCompatible>true</IsAotCompatible>
15+
</PropertyGroup>
16+
1317
<ItemGroup>
1418
<ProjectReference Include="..\Snowberry.Mediator\Snowberry.Mediator.csproj" />
1519
</ItemGroup>
1620

1721
<Import Project="../NuGetPackage.props" />
22+
<Import Project="../PolySharp.props" />
1823
</Project>

src/Snowberry.Mediator.DependencyInjection/Snowberry.Mediator.DependencyInjection.csproj

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net10.0;net9.0</TargetFrameworks>
4+
<TargetFrameworks>net10.0;net9.0;netstandard2.0</TargetFrameworks>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
7-
<IsAotCompatible>true</IsAotCompatible>
7+
<LangVersion>latest</LangVersion>
88

99
<!-- Package -->
1010
<Description>Extension for the main package to work with `Snowberry.DependencyInjection`.</Description>
1111
</PropertyGroup>
1212

13+
<PropertyGroup Condition="$(TargetFramework) != 'netstandard2.0'">
14+
<IsAotCompatible>true</IsAotCompatible>
15+
</PropertyGroup>
16+
1317
<ItemGroup>
1418
<PackageReference Include="Snowberry.DependencyInjection" Version="5.1.0" />
1519
</ItemGroup>
@@ -20,4 +24,5 @@
2024
</ItemGroup>
2125

2226
<Import Project="../NuGetPackage.props" />
27+
<Import Project="../PolySharp.props" />
2328
</Project>

src/Snowberry.Mediator.DependencyInjection/SnowberryServiceContext.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public bool IsServiceRegistered<T>()
2222
}
2323

2424
/// <inheritdoc/>
25-
public void TryRegister(Type serviceType, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] Type implementationType, RegistrationServiceLifetime lifetime)
25+
public void TryRegister(Type serviceType, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicProperties)] Type implementationType, RegistrationServiceLifetime lifetime)
2626
{
2727
_serviceRegistry.TryRegister(new ServiceDescriptor(serviceType, implementationType, lifetime switch
2828
{
@@ -34,7 +34,7 @@ public void TryRegister(Type serviceType, [DynamicallyAccessedMembers(Dynamicall
3434
}
3535

3636
/// <inheritdoc/>
37-
public void TryRegister(Type serviceType, object instance)
37+
public void TryRegister([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicProperties)] Type serviceType, object instance)
3838
{
3939
_serviceRegistry.TryRegister(ServiceDescriptor.Singleton(serviceType, serviceType, singletonInstance: instance));
4040
}

src/Snowberry.Mediator.Extensions.DependencyInjection/MicrosoftServiceContext.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public bool IsServiceRegistered<T>()
2121
}
2222

2323
/// <inheritdoc/>
24-
public void TryRegister(Type serviceType, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] Type implementationType, RegistrationServiceLifetime lifetime)
24+
public void TryRegister(Type serviceType, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicProperties)] Type implementationType, RegistrationServiceLifetime lifetime)
2525
{
2626
var descriptor = new ServiceDescriptor(serviceType, implementationType, lifetime switch
2727
{
@@ -35,7 +35,7 @@ public void TryRegister(Type serviceType, [DynamicallyAccessedMembers(Dynamicall
3535
}
3636

3737
/// <inheritdoc/>
38-
public void TryRegister(Type serviceType, object instance)
38+
public void TryRegister([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicProperties)] Type serviceType, object instance)
3939
{
4040
var descriptor = new ServiceDescriptor(serviceType, instance: instance);
4141
_serviceCollection.TryAdd(descriptor);

0 commit comments

Comments
 (0)