diff --git a/build/build.csproj b/build/build.csproj index 59bcf9fb5..64ebb864a 100644 --- a/build/build.csproj +++ b/build/build.csproj @@ -9,7 +9,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/samples/AvaloniaApp/AvaloniaApp.csproj b/samples/AvaloniaApp/AvaloniaApp.csproj index 94a358b2b..b68752e48 100644 --- a/samples/AvaloniaApp/AvaloniaApp.csproj +++ b/samples/AvaloniaApp/AvaloniaApp.csproj @@ -14,12 +14,12 @@ - - - - + + + + - + diff --git a/samples/GrpcService/GrpcService.csproj b/samples/GrpcService/GrpcService.csproj index 2943c6997..221007d6c 100644 --- a/samples/GrpcService/GrpcService.csproj +++ b/samples/GrpcService/GrpcService.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/Pure.DI.Core/Components/Api.g.cs b/src/Pure.DI.Core/Components/Api.g.cs index 2666fcc8d..ab4ee2e58 100644 --- a/src/Pure.DI.Core/Components/Api.g.cs +++ b/src/Pure.DI.Core/Components/Api.g.cs @@ -1,5 +1,5 @@ // -#if !PUREDI_API_SUPPRESSION || PUREDI_API_V2 +#if !PUREDI_API_SUPPRESSION || PUREDI_API_V1 #pragma warning disable #if !NET40_OR_GREATER && !NETSTANDARD2_0_OR_GREATER && !NETCOREAPP2_0_OR_GREATER diff --git a/src/Pure.DI.Core/Components/GenericTypeArguments.g.cs b/src/Pure.DI.Core/Components/GenericTypeArguments.g.cs index 62ddcf5be..5707dffbe 100644 --- a/src/Pure.DI.Core/Components/GenericTypeArguments.g.cs +++ b/src/Pure.DI.Core/Components/GenericTypeArguments.g.cs @@ -1,5 +1,5 @@ // -#if !PUREDI_API_SUPPRESSION || PUREDI_API_V2 +#if !PUREDI_API_SUPPRESSION || PUREDI_API_V1 #pragma warning disable namespace Pure.DI { diff --git a/src/Pure.DI.Core/Components/GenericTypeArguments.g.tt b/src/Pure.DI.Core/Components/GenericTypeArguments.g.tt index fe949ab39..3c7a6fb6f 100644 --- a/src/Pure.DI.Core/Components/GenericTypeArguments.g.tt +++ b/src/Pure.DI.Core/Components/GenericTypeArguments.g.tt @@ -3,7 +3,7 @@ <#@ assembly name="netstandard" #> <#@ import namespace="System.Collections.Generic" #> // -#if !PUREDI_API_SUPPRESSION || PUREDI_API_V2 +#if !PUREDI_API_SUPPRESSION || PUREDI_API_V1 #pragma warning disable namespace Pure.DI { diff --git a/src/Pure.DI.Core/Core/Code/ClassBuilder.cs b/src/Pure.DI.Core/Core/Code/ClassBuilder.cs index c93e8aad3..8f6eec0c4 100644 --- a/src/Pure.DI.Core/Core/Code/ClassBuilder.cs +++ b/src/Pure.DI.Core/Core/Code/ClassBuilder.cs @@ -2,19 +2,19 @@ namespace Pure.DI.Core.Code; internal sealed class ClassBuilder( - [Tag(WellknownTag.UsingDeclarationsBuilder)] IBuilder usingDeclarationsBuilder, - [Tag(WellknownTag.FieldsBuilder)] IBuilder fieldsBuilder, - [Tag(WellknownTag.ArgFieldsBuilder)] IBuilder argFieldsBuilder, - [Tag(WellknownTag.ParameterizedConstructorBuilder)] IBuilder parameterizedConstructorBuilder, - [Tag(WellknownTag.DefaultConstructorBuilder)] IBuilder defaultConstructorBuilder, - [Tag(WellknownTag.ScopeConstructorBuilder)] IBuilder scopeConstructorBuilder, - [Tag(WellknownTag.RootMethodsBuilder)] IBuilder rootPropertiesBuilder, - [Tag(WellknownTag.ApiMembersBuilder)] IBuilder apiMembersBuilder, - [Tag(WellknownTag.DisposeMethodBuilder)] IBuilder disposeMethodBuilder, - [Tag(WellknownTag.ToStringMethodBuilder)] IBuilder toStringBuilder, - [Tag(WellknownTag.ResolversFieldsBuilder)] IBuilder resolversFieldsBuilder, - [Tag(WellknownTag.StaticConstructorBuilder)] IBuilder staticConstructorBuilder, - [Tag(WellknownTag.ResolverClassesBuilder)] IBuilder resolversClassesBuilder, + [Tag(typeof(UsingDeclarationsBuilder))] IBuilder usingDeclarationsBuilder, + [Tag(typeof(FieldsBuilder))] IBuilder fieldsBuilder, + [Tag(typeof(ArgFieldsBuilder))] IBuilder argFieldsBuilder, + [Tag(typeof(ParameterizedConstructorBuilder))] IBuilder parameterizedConstructorBuilder, + [Tag(typeof(DefaultConstructorBuilder))] IBuilder defaultConstructorBuilder, + [Tag(typeof(ScopeConstructorBuilder))] IBuilder scopeConstructorBuilder, + [Tag(typeof(RootMethodsBuilder))] IBuilder rootPropertiesBuilder, + [Tag(typeof(ApiMembersBuilder))] IBuilder apiMembersBuilder, + [Tag(typeof(DisposeMethodBuilder))] IBuilder disposeMethodBuilder, + [Tag(typeof(ToStringMethodBuilder))] IBuilder toStringBuilder, + [Tag(typeof(ResolversFieldsBuilder))] IBuilder resolversFieldsBuilder, + [Tag(typeof(StaticConstructorBuilder))] IBuilder staticConstructorBuilder, + [Tag(typeof(ResolverClassesBuilder))] IBuilder resolversClassesBuilder, [Tag(typeof(ClassCommenter))] ICommenter classCommenter, IInformation information, CancellationToken cancellationToken) diff --git a/src/Pure.DI.Core/Core/CodeBuilder.cs b/src/Pure.DI.Core/Core/CodeBuilder.cs index 3463a1b73..daf105691 100644 --- a/src/Pure.DI.Core/Core/CodeBuilder.cs +++ b/src/Pure.DI.Core/Core/CodeBuilder.cs @@ -6,8 +6,8 @@ internal class CodeBuilder( IBuilder dependencyGraphBuilder, IValidator dependencyGraphValidator, IBuilder> rootsBuilder, - [Tag(WellknownTag.CompositionBuilder)] IBuilder compositionBuilder, - [Tag(WellknownTag.ClassBuilder)] IBuilder classBuilder, + IBuilder compositionBuilder, + IBuilder classBuilder, IValidator metadataValidator, IGeneratorSources sources, CancellationToken cancellationToken) diff --git a/src/Pure.DI.Core/Core/WellknownTag.cs b/src/Pure.DI.Core/Core/WellknownTag.cs deleted file mode 100644 index abea6bfd7..000000000 --- a/src/Pure.DI.Core/Core/WellknownTag.cs +++ /dev/null @@ -1,20 +0,0 @@ -namespace Pure.DI.Core; - -internal enum WellknownTag -{ - CompositionBuilder, - ClassBuilder, - DisposeMethodBuilder, - RootMethodsBuilder, - UsingDeclarationsBuilder, - ArgFieldsBuilder, - FieldsBuilder, - ScopeConstructorBuilder, - ParameterizedConstructorBuilder, - DefaultConstructorBuilder, - ResolverClassesBuilder, - StaticConstructorBuilder, - ApiMembersBuilder, - ResolversFieldsBuilder, - ToStringMethodBuilder -} \ No newline at end of file diff --git a/src/Pure.DI.Core/Features/Default.g.cs b/src/Pure.DI.Core/Features/Default.g.cs index 91bf63c32..b797fde6b 100644 --- a/src/Pure.DI.Core/Features/Default.g.cs +++ b/src/Pure.DI.Core/Features/Default.g.cs @@ -1,5 +1,5 @@ // -#if !PUREDI_API_SUPPRESSION || PUREDI_API_V2 +#if !PUREDI_API_SUPPRESSION || PUREDI_API_V1 #pragma warning disable namespace Pure.DI diff --git a/src/Pure.DI.Core/Generator.Composition.cs b/src/Pure.DI.Core/Generator.Composition.cs index eb838f48b..dd7c6e35d 100644 --- a/src/Pure.DI.Core/Generator.Composition.cs +++ b/src/Pure.DI.Core/Generator.Composition.cs @@ -15,28 +15,29 @@ public partial class Generator [Conditional("DI")] private static void Setup() => DI.Setup(nameof(Generator)) .Hint(Hint.Resolve, "Off") - - .RootArg("options") - .RootArg("sources") - .RootArg("diagnostic") - .RootArg("cancellationToken") - .Root>("Api") - .Root("Observers") - .Root, Unit>>("CreateGenerator", kind: RootKinds.Private) + // Roots + .Root>("Api") + .Root("Observers") + .Root, Unit>>("CreateGenerator", kind: RootKinds.Private) + + .RootArg("options") + .RootArg("sources") + .RootArg("diagnostic") + .RootArg("cancellationToken") // Transient - .Bind().To() - .Bind().To() - .Bind().To() - .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To() .Bind>().To(_ => StringComparer.InvariantCultureIgnoreCase) // Singleton .DefaultLifetime(Singleton) - .Bind>().To>() - .Bind().Bind().To() - .Bind>().To(ctx => + .Bind().To>() + .Bind().To() + .Bind().To(ctx => { ctx.Inject>>(out var api); return api.Build(Unit.Shared); @@ -44,75 +45,73 @@ private static void Setup() => DI.Setup(nameof(Generator)) // PerBlock .DefaultLifetime(PerBlock) - .Bind().To() - .Bind().To() - .Bind, Uri>>().To() - .Bind().To() - .Bind>().To>() - .Bind().To() - .Bind().To() - .Bind().To() - .Bind>().To() - .Bind>().To() - .Bind().To() - .Bind>().To>() - .Bind().To() - .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To>() + .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To>() + .Bind().To() + .Bind().To() // Comments - .Bind>(typeof(ClassCommenter)).To() - .Bind>(typeof(ParameterizedConstructorCommenter)).To() - .Bind>(typeof(RootMethodsCommenter)).To() + .Bind(Tag.Type).To() + .Bind(Tag.Type).To() + .Bind(Tag.Type).To() // Builders - .Bind, IEnumerable>>().To() - .Bind>().To() - .Bind, IEnumerable>>().To() - .Bind>>().To() - .Bind>().To() - .Bind>>().To() - .Bind>>(typeof(FactoryDependencyNodeBuilder)).To() - .Bind>>(typeof(ArgDependencyNodeBuilder)).To() - .Bind>>(typeof(ConstructDependencyNodeBuilder)).To() - .Bind>>(typeof(ImplementationDependencyNodeBuilder)).To() - .Bind>>(typeof(RootDependencyNodeBuilder)).To() - .Bind>().To() - .Bind>>().To() - .Bind>>().To() - .Bind>().To() - .Bind>>().To() - .Bind, Unit>>().To() - .Bind, MdFactory>>().To() - .Bind>(WellknownTag.CompositionBuilder).To() - .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To() + .Bind(Tag.Unique).To() + .Bind(Tag.Unique).To() + .Bind(Tag.Unique).To() + .Bind(Tag.Unique).To() + .Bind(Tag.Unique).To() + .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To() // Code builders - .Bind>().To() - .Bind>().To() - .Bind>().To() - .Bind>().To() - .Bind>().To() - .Bind>().To() - - // Code - .Bind>(WellknownTag.ClassBuilder).To() - .Bind>(WellknownTag.DisposeMethodBuilder).To() - .Bind>(WellknownTag.RootMethodsBuilder).To() - .Bind>(WellknownTag.UsingDeclarationsBuilder).To() - .Bind>(WellknownTag.ArgFieldsBuilder).To() - .Bind>(WellknownTag.FieldsBuilder).To() - .Bind>(WellknownTag.ScopeConstructorBuilder).To() - .Bind>(WellknownTag.ParameterizedConstructorBuilder).To() - .Bind>(WellknownTag.DefaultConstructorBuilder).To() - .Bind>(WellknownTag.ResolverClassesBuilder).To() - .Bind>(WellknownTag.StaticConstructorBuilder).To() - .Bind>(WellknownTag.ApiMembersBuilder).To() - .Bind>(WellknownTag.ResolversFieldsBuilder).To() - .Bind>(WellknownTag.ToStringMethodBuilder).To() + .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To() + .Bind().To() + .Bind(Tag.Type).To() + .Bind(Tag.Type).To() + .Bind(Tag.Type).To() + .Bind(Tag.Type).To() + .Bind(Tag.Type).To() + .Bind(Tag.Type).To() + .Bind(Tag.Type).To() + .Bind(Tag.Type).To() + .Bind(Tag.Type).To() + .Bind(Tag.Type).To() + .Bind(Tag.Type).To() + .Bind(Tag.Type).To() + .Bind(Tag.Type).To() // PerResolve .DefaultLifetime(PerResolve) - .Bind>().To() - .Bind().To() - .Bind().To(); + .Bind().To() + .Bind().To() + .Bind().To(); } \ No newline at end of file diff --git a/src/Pure.DI.Core/Pure.DI.Core.csproj b/src/Pure.DI.Core/Pure.DI.Core.csproj index a4a904c20..498345025 100644 --- a/src/Pure.DI.Core/Pure.DI.Core.csproj +++ b/src/Pure.DI.Core/Pure.DI.Core.csproj @@ -2,11 +2,11 @@ $(BasePackageId) - $(DefineConstants);PUREDI_API_SUPPRESSION;PUREDI_API_V2 + $(DefineConstants);PUREDI_API_SUPPRESSION;PUREDI_API_V1 - + all runtime; build; native; contentfiles; analyzers; buildtransitive