diff --git a/common/Perf/Azure.Test.Perf/Azure.Test.Perf.csproj b/common/Perf/Azure.Test.Perf/Azure.Test.Perf.csproj
index 0287d57dcd06..b8bc428847ea 100644
--- a/common/Perf/Azure.Test.Perf/Azure.Test.Perf.csproj
+++ b/common/Perf/Azure.Test.Perf/Azure.Test.Perf.csproj
@@ -12,6 +12,7 @@
+
diff --git a/eng/Packages.Data.props b/eng/Packages.Data.props
index 7fdbc92d1383..8f36fc86f2cc 100644
--- a/eng/Packages.Data.props
+++ b/eng/Packages.Data.props
@@ -213,6 +213,7 @@
+
diff --git a/eng/scripts/splittestdependencies/tests/inputs/projects.txt b/eng/scripts/splittestdependencies/tests/inputs/projects.txt
index 9d6515197741..2a6bbe06b9fc 100644
--- a/eng/scripts/splittestdependencies/tests/inputs/projects.txt
+++ b/eng/scripts/splittestdependencies/tests/inputs/projects.txt
@@ -40,6 +40,7 @@ $(RepoRoot)sdk\core\Azure.Core.Experimental\tests\Azure.Core.Experimental.Tests.
$(RepoRoot)sdk\core\Azure.Core.Experimental\tests\perf\Azure.Core.Experimental.Performance.csproj
$(RepoRoot)sdk\core\Azure.Core.TestFramework\tests\Azure.Core.TestFramework.Tests.csproj
$(RepoRoot)sdk\core\Azure.Core\tests\Azure.Core.Tests.csproj
+$(RepoRoot)sdk\core\Azure.Core\tests\public\Azure.Core.Tests.Public.csproj
$(RepoRoot)sdk\core\Microsoft.Azure.Core.NewtonsoftJson\tests\Microsoft.Azure.Core.NewtonsoftJson.Tests.csproj
$(RepoRoot)sdk\core\Microsoft.Azure.Core.Spatial.NewtonsoftJson\tests\Microsoft.Azure.Core.Spatial.NewtonsoftJson.Tests.csproj
$(RepoRoot)sdk\core\Microsoft.Azure.Core.Spatial\tests\Microsoft.Azure.Core.Spatial.Tests.csproj
diff --git a/sdk/core/Azure.Core/Azure.Core.sln b/sdk/core/Azure.Core/Azure.Core.sln
index 23ac37baec81..6cdf7559841e 100644
--- a/sdk/core/Azure.Core/Azure.Core.sln
+++ b/sdk/core/Azure.Core/Azure.Core.sln
@@ -53,6 +53,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Azure.Core.Expressions.Data
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Azure.Core.Tests.Public", "tests\public\Azure.Core.Tests.Public.csproj", "{BFBF8EF7-61D8-40E7-9E98-468A0427761E}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Azure.Core.Tests.Common", "tests\common\Azure.Core.Tests.Common.csproj", "{0EEDF53F-120A-45B1-8468-A97A0D46DBAC}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -131,6 +133,10 @@ Global
{BFBF8EF7-61D8-40E7-9E98-468A0427761E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BFBF8EF7-61D8-40E7-9E98-468A0427761E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BFBF8EF7-61D8-40E7-9E98-468A0427761E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0EEDF53F-120A-45B1-8468-A97A0D46DBAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0EEDF53F-120A-45B1-8468-A97A0D46DBAC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0EEDF53F-120A-45B1-8468-A97A0D46DBAC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0EEDF53F-120A-45B1-8468-A97A0D46DBAC}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/sdk/core/Azure.Core/CHANGELOG.md b/sdk/core/Azure.Core/CHANGELOG.md
index a2318c735a21..5a90f4b360ed 100644
--- a/sdk/core/Azure.Core/CHANGELOG.md
+++ b/sdk/core/Azure.Core/CHANGELOG.md
@@ -4,6 +4,8 @@
### Features Added
+-Added `ModelSerializer` which provides a public API to serialize and deserialize models. The new API works with any classes that implement `IModelSerializeable`.
+
### Breaking Changes
### Bugs Fixed
diff --git a/sdk/core/Azure.Core/api/Azure.Core.net461.cs b/sdk/core/Azure.Core/api/Azure.Core.net461.cs
index 3f774979daad..9aaf09bb355c 100644
--- a/sdk/core/Azure.Core/api/Azure.Core.net461.cs
+++ b/sdk/core/Azure.Core/api/Azure.Core.net461.cs
@@ -539,6 +539,8 @@ public abstract partial class RequestContent : System.IDisposable
{
protected RequestContent() { }
public static Azure.Core.RequestContent Create(Azure.Core.Serialization.DynamicData content) { throw null; }
+ public static Azure.Core.RequestContent Create(Azure.Core.Serialization.IModelJsonSerializable