diff --git a/Volo.Abp.sln b/Volo.Abp.sln index 08a27327d4..5967ca18d1 100644 --- a/Volo.Abp.sln +++ b/Volo.Abp.sln @@ -168,11 +168,13 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Core.Tests", "test EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.ApiVersioning.Abstractions", "src\Volo.Abp.ApiVersioning.Abstractions\Volo.Abp.ApiVersioning.Abstractions.csproj", "{BC55B87F-D2BD-428D-8F78-A95EE7BDFDFA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Data", "src\Volo.Abp.Data\Volo.Abp.Data.csproj", "{5E7381EE-54BC-4BFD-883A-8C6578C2CAD7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Data", "src\Volo.Abp.Data\Volo.Abp.Data.csproj", "{5E7381EE-54BC-4BFD-883A-8C6578C2CAD7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Data.Tests", "test\Volo.Abp.Data.Tests\Volo.Abp.Data.Tests.csproj", "{5D2275B7-0745-420A-AF1C-32C563DAB5C8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Data.Tests", "test\Volo.Abp.Data.Tests\Volo.Abp.Data.Tests.csproj", "{5D2275B7-0745-420A-AF1C-32C563DAB5C8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.MultiTenancy.Abstractions", "src\Volo.Abp.MultiTenancy.Abstractions\Volo.Abp.MultiTenancy.Abstractions.csproj", "{10EB789E-C993-4BE8-BA43-C419936C7233}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.MultiTenancy.Abstractions", "src\Volo.Abp.MultiTenancy.Abstractions\Volo.Abp.MultiTenancy.Abstractions.csproj", "{10EB789E-C993-4BE8-BA43-C419936C7233}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.ObjectMapping", "src\Volo.Abp.ObjectMapping\Volo.Abp.ObjectMapping.csproj", "{8D22063D-88DE-4F7A-A917-C81AB4ACE601}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -452,6 +454,10 @@ Global {10EB789E-C993-4BE8-BA43-C419936C7233}.Debug|Any CPU.Build.0 = Debug|Any CPU {10EB789E-C993-4BE8-BA43-C419936C7233}.Release|Any CPU.ActiveCfg = Release|Any CPU {10EB789E-C993-4BE8-BA43-C419936C7233}.Release|Any CPU.Build.0 = Release|Any CPU + {8D22063D-88DE-4F7A-A917-C81AB4ACE601}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8D22063D-88DE-4F7A-A917-C81AB4ACE601}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8D22063D-88DE-4F7A-A917-C81AB4ACE601}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8D22063D-88DE-4F7A-A917-C81AB4ACE601}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -535,6 +541,7 @@ Global {5E7381EE-54BC-4BFD-883A-8C6578C2CAD7} = {4C753F64-0C93-4D65-96C2-A40893AFC1E8} {5D2275B7-0745-420A-AF1C-32C563DAB5C8} = {37087D1B-3693-4E96-983D-A69F210BDE53} {10EB789E-C993-4BE8-BA43-C419936C7233} = {4C753F64-0C93-4D65-96C2-A40893AFC1E8} + {8D22063D-88DE-4F7A-A917-C81AB4ACE601} = {4C753F64-0C93-4D65-96C2-A40893AFC1E8} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {BB97ECF4-9A84-433F-A80B-2A3285BDD1D5} diff --git a/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.csproj b/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.csproj index 0ca4ca6846..c7021e85f0 100644 --- a/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.csproj +++ b/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.csproj @@ -14,7 +14,7 @@ - + diff --git a/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs b/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs index 2515fcde6e..ecc623356f 100644 --- a/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs +++ b/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs @@ -6,11 +6,12 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Volo.Abp.Modularity; +using Volo.Abp.ObjectMapping; using Volo.Abp.Reflection; namespace Volo.Abp.AutoMapper { - [DependsOn(typeof(AbpCommonModule))] + [DependsOn(typeof(AbpObjectMappingModule))] public class AbpAutoMapperModule : AbpModule { private static volatile bool _createdMappingsBefore; diff --git a/src/Volo.Abp.ObjectMapping/Volo.Abp.ObjectMapping.csproj b/src/Volo.Abp.ObjectMapping/Volo.Abp.ObjectMapping.csproj new file mode 100644 index 0000000000..2a9df91ab5 --- /dev/null +++ b/src/Volo.Abp.ObjectMapping/Volo.Abp.ObjectMapping.csproj @@ -0,0 +1,20 @@ + + + + + + netstandard2.0 + Volo.Abp.ObjectMapping + Volo.Abp.ObjectMapping + $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + false + false + false + + + + + + + + diff --git a/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/AbpObjectMappingModule.cs b/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/AbpObjectMappingModule.cs new file mode 100644 index 0000000000..3128f2ad9e --- /dev/null +++ b/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/AbpObjectMappingModule.cs @@ -0,0 +1,28 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Modularity; +using Volo.Abp.Reflection; + +namespace Volo.Abp.ObjectMapping +{ + public class AbpObjectMappingModule : AbpModule + { + public override void PreConfigureServices(IServiceCollection services) + { + services.OnExposing(context => + { + //Register types for IObjectMapper if implements + context.ExposedTypes.AddRange( + ReflectionHelper.GetImplementedGenericTypes( + context.ImplementationType, + typeof(IObjectMapper<,>) + ) + ); + }); + } + + public override void ConfigureServices(IServiceCollection services) + { + services.AddAssemblyOf(); + } + } +} diff --git a/src/Volo.Abp/Volo/Abp/ObjectMapping/DefaultObjectMapper.cs b/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/DefaultObjectMapper.cs similarity index 100% rename from src/Volo.Abp/Volo/Abp/ObjectMapping/DefaultObjectMapper.cs rename to src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/DefaultObjectMapper.cs diff --git a/src/Volo.Abp/Volo/Abp/ObjectMapping/IObjectMapper.cs b/src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/IObjectMapper.cs similarity index 100% rename from src/Volo.Abp/Volo/Abp/ObjectMapping/IObjectMapper.cs rename to src/Volo.Abp.ObjectMapping/Volo/Abp/ObjectMapping/IObjectMapper.cs diff --git a/src/Volo.Abp/Volo.Abp.csproj b/src/Volo.Abp/Volo.Abp.csproj index 63c774f056..a23c9396ad 100644 --- a/src/Volo.Abp/Volo.Abp.csproj +++ b/src/Volo.Abp/Volo.Abp.csproj @@ -19,6 +19,7 @@ + diff --git a/src/Volo.Abp/Volo/Abp/AbpCommonModule.cs b/src/Volo.Abp/Volo/Abp/AbpCommonModule.cs index 5c82cacd6a..07ac454cb9 100644 --- a/src/Volo.Abp/Volo/Abp/AbpCommonModule.cs +++ b/src/Volo.Abp/Volo/Abp/AbpCommonModule.cs @@ -5,7 +5,6 @@ using Volo.Abp.Localization; using Volo.Abp.Modularity; using Volo.Abp.MultiTenancy; using Volo.Abp.ObjectMapping; -using Volo.Abp.Reflection; using Volo.Abp.Threading; using Volo.Abp.Uow; using Volo.Abp.Validation; @@ -18,24 +17,13 @@ namespace Volo.Abp [DependsOn(typeof(AbpApiVersioningAbstractionsModule))] [DependsOn(typeof(AbpDataModule))] [DependsOn(typeof(AbpMultiTenancyAbstractionsModule))] + [DependsOn(typeof(AbpObjectMappingModule))] public class AbpCommonModule : AbpModule { public override void PreConfigureServices(IServiceCollection services) { services.OnRegistred(UnitOfWorkInterceptorRegistrar.RegisterIfNeeded); services.OnRegistred(ValidationInterceptorRegistrar.RegisterIfNeeded); - - //TODO: Move to a dedicated class - services.OnExposing(context => - { - //Register types for IObjectMapper if implements - context.ExposedTypes.AddRange( - ReflectionHelper.GetImplementedGenericTypes( - context.ImplementationType, - typeof(IObjectMapper<,>) - ) - ); - }); } public override void ConfigureServices(IServiceCollection services) diff --git a/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj b/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj index f66e81c710..c7cd3b2f6d 100644 --- a/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj +++ b/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj @@ -13,6 +13,7 @@ + diff --git a/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapper_ConfigurationValidation_Tests.cs b/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapper_ConfigurationValidation_Tests.cs index 65352ea9e7..f9bb52dd5e 100644 --- a/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapper_ConfigurationValidation_Tests.cs +++ b/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapper_ConfigurationValidation_Tests.cs @@ -24,6 +24,7 @@ namespace Volo.Abp.AutoMapper _objectMapper.Map(new MySourceClass {Value = "42"}).ValueNotMatched.ShouldBe(null); } + [DependsOn(typeof(AbpCommonModule))] [DependsOn(typeof(AbpAutoMapperModule))] public class Module : AbpModule { diff --git a/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutofacTestModule.cs b/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutofacTestModule.cs index 4dda1020e9..4a06c6d771 100644 --- a/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutofacTestModule.cs +++ b/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutofacTestModule.cs @@ -4,6 +4,7 @@ using Volo.Abp.Modularity; namespace Volo.Abp.AutoMapper { [DependsOn(typeof(AbpAutoMapperModule))] + [DependsOn(typeof(AbpCommonModule))] public class AutoMapperTestModule : AbpModule { public override void ConfigureServices(IServiceCollection services) diff --git a/test/Volo.Abp.TestApp/Volo.Abp.TestApp.csproj b/test/Volo.Abp.TestApp/Volo.Abp.TestApp.csproj index 7e829b67f9..5c04368a4b 100644 --- a/test/Volo.Abp.TestApp/Volo.Abp.TestApp.csproj +++ b/test/Volo.Abp.TestApp/Volo.Abp.TestApp.csproj @@ -13,6 +13,7 @@ + diff --git a/test/Volo.Abp.TestApp/Volo/Abp/TestApp/TestAppModule.cs b/test/Volo.Abp.TestApp/Volo/Abp/TestApp/TestAppModule.cs index c87aafa587..adc286b967 100644 --- a/test/Volo.Abp.TestApp/Volo/Abp/TestApp/TestAppModule.cs +++ b/test/Volo.Abp.TestApp/Volo/Abp/TestApp/TestAppModule.cs @@ -7,6 +7,7 @@ using Volo.Abp.TestApp.Application.Dto; namespace Volo.Abp.TestApp { [DependsOn(typeof(AbpAutoMapperModule))] + [DependsOn(typeof(AbpCommonModule))] public class TestAppModule : AbpModule { public override void ConfigureServices(IServiceCollection services)