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)