From 080838f0e51914806229eb2d0128d71ab59e8f4f Mon Sep 17 00:00:00 2001
From: andy <andy@163.com>
Date: Thu, 23 Aug 2018 09:18:36 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0VS=E9=A1=B9=E7=9B=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../DesignPatternStudy.Learn.csproj           |  58 ++++++++++
 .../Properties/AssemblyInfo.cs                |  36 ++++++
 .../NoPattern/NoStrategyPattern.cs            |  33 ++++++
 .../StrategyPattern/策略模式学习.txt    |   1 +
 DesignPatternStudy.Learn/packages.config      |   4 +
 DesignPatternStudy.Learn/项目说明.txt     |   7 ++
 .../DesignPatternStudy.LearnTest.csproj       | 104 ++++++++++++++++++
 .../Properties/AssemblyInfo.cs                |  36 ++++++
 .../StrategyPattern/NoStrategyPatternTest.cs  |  34 ++++++
 DesignPatternStudy.LearnTest/packages.config  |  16 +++
 DesignPatternStudy.LearnTest/xUnitTest.cs     |  18 +++
 设计模式学习.sln                        |  31 ++++++
 12 files changed, 378 insertions(+)
 create mode 100644 DesignPatternStudy.Learn/DesignPatternStudy.Learn.csproj
 create mode 100644 DesignPatternStudy.Learn/Properties/AssemblyInfo.cs
 create mode 100644 DesignPatternStudy.Learn/StrategyPattern/NoPattern/NoStrategyPattern.cs
 create mode 100644 DesignPatternStudy.Learn/StrategyPattern/策略模式学习.txt
 create mode 100644 DesignPatternStudy.Learn/packages.config
 create mode 100644 DesignPatternStudy.Learn/项目说明.txt
 create mode 100644 DesignPatternStudy.LearnTest/DesignPatternStudy.LearnTest.csproj
 create mode 100644 DesignPatternStudy.LearnTest/Properties/AssemblyInfo.cs
 create mode 100644 DesignPatternStudy.LearnTest/StrategyPattern/NoStrategyPatternTest.cs
 create mode 100644 DesignPatternStudy.LearnTest/packages.config
 create mode 100644 DesignPatternStudy.LearnTest/xUnitTest.cs
 create mode 100644 设计模式学习.sln

diff --git a/DesignPatternStudy.Learn/DesignPatternStudy.Learn.csproj b/DesignPatternStudy.Learn/DesignPatternStudy.Learn.csproj
new file mode 100644
index 0000000..52f802f
--- /dev/null
+++ b/DesignPatternStudy.Learn/DesignPatternStudy.Learn.csproj
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{9CE997BC-ABF1-4AD0-99C2-B97A8BF91659}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>DesignPatternStudy.Learn</RootNamespace>
+    <AssemblyName>DesignPatternStudy.Learn</AssemblyName>
+    <TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <Deterministic>true</Deterministic>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Autofac, Version=4.8.1.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
+      <HintPath>..\packages\Autofac.4.8.1\lib\net45\Autofac.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="StrategyPattern\NoPattern\NoStrategyPattern.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="packages.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="StrategyPattern\策略模式学习.txt" />
+    <Content Include="项目说明.txt" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>
\ No newline at end of file
diff --git a/DesignPatternStudy.Learn/Properties/AssemblyInfo.cs b/DesignPatternStudy.Learn/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..b4680f6
--- /dev/null
+++ b/DesignPatternStudy.Learn/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 有关程序集的一般信息由以下
+// 控制。更改这些特性值可修改
+// 与程序集关联的信息。
+[assembly: AssemblyTitle("DesignPatternStudy.Learn")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("DesignPatternStudy.Learn")]
+[assembly: AssemblyCopyright("Copyright ©  2018")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 将 ComVisible 设置为 false 会使此程序集中的类型
+//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
+//请将此类型的 ComVisible 特性设置为 true。
+[assembly: ComVisible(false)]
+
+// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
+[assembly: Guid("9ce997bc-abf1-4ad0-99c2-b97a8bf91659")]
+
+// 程序集的版本信息由下列四个值组成: 
+//
+//      主版本
+//      次版本
+//      生成号
+//      修订号
+//
+// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
+//通过使用 "*",如下所示:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/DesignPatternStudy.Learn/StrategyPattern/NoPattern/NoStrategyPattern.cs b/DesignPatternStudy.Learn/StrategyPattern/NoPattern/NoStrategyPattern.cs
new file mode 100644
index 0000000..fda1c69
--- /dev/null
+++ b/DesignPatternStudy.Learn/StrategyPattern/NoPattern/NoStrategyPattern.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DesignPatternStudy.Learn.StrategyPattern.NoPattern
+{
+    public class NoStrategyPattern
+    {
+        public decimal GetPrice(decimal sourcePrice, int priceType)
+        {
+            decimal discountPrice = sourcePrice;
+            switch (priceType)
+            {
+                case 1:
+                    discountPrice = sourcePrice * 0.9m;
+                    break;
+                case 2:
+                    discountPrice = sourcePrice - 10m;
+                    break;
+                case 3:
+                    discountPrice = sourcePrice - 100m;
+                    break;
+                default:
+                    discountPrice = sourcePrice;
+                    break;
+            }
+
+            return discountPrice;
+        }
+    }
+}
diff --git a/DesignPatternStudy.Learn/StrategyPattern/策略模式学习.txt b/DesignPatternStudy.Learn/StrategyPattern/策略模式学习.txt
new file mode 100644
index 0000000..670c933
--- /dev/null
+++ b/DesignPatternStudy.Learn/StrategyPattern/策略模式学习.txt
@@ -0,0 +1 @@
+策略模式学习
\ No newline at end of file
diff --git a/DesignPatternStudy.Learn/packages.config b/DesignPatternStudy.Learn/packages.config
new file mode 100644
index 0000000..08f57a8
--- /dev/null
+++ b/DesignPatternStudy.Learn/packages.config
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="Autofac" version="4.8.1" targetFramework="net47" />
+</packages>
\ No newline at end of file
diff --git a/DesignPatternStudy.Learn/项目说明.txt b/DesignPatternStudy.Learn/项目说明.txt
new file mode 100644
index 0000000..f9931d8
--- /dev/null
+++ b/DesignPatternStudy.Learn/项目说明.txt
@@ -0,0 +1,7 @@
+项目说明:
+
+本项目为学习设计模式而建。 
+
+基于“《研磨设计模式》跟着CC学设计”。 
+
+原版中使用Java的实现,转为基于C#的实现。
\ No newline at end of file
diff --git a/DesignPatternStudy.LearnTest/DesignPatternStudy.LearnTest.csproj b/DesignPatternStudy.LearnTest/DesignPatternStudy.LearnTest.csproj
new file mode 100644
index 0000000..f911433
--- /dev/null
+++ b/DesignPatternStudy.LearnTest/DesignPatternStudy.LearnTest.csproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="..\packages\xunit.runner.visualstudio.2.4.0\build\net20\xunit.runner.visualstudio.props" Condition="Exists('..\packages\xunit.runner.visualstudio.2.4.0\build\net20\xunit.runner.visualstudio.props')" />
+  <Import Project="..\packages\xunit.core.2.4.0\build\xunit.core.props" Condition="Exists('..\packages\xunit.core.2.4.0\build\xunit.core.props')" />
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{1FF6F739-4DF3-4C72-89C7-4DECFC3C6F9E}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>DesignPatternStudy.LearnTest</RootNamespace>
+    <AssemblyName>DesignPatternStudy.LearnTest</AssemblyName>
+    <TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <Deterministic>true</Deterministic>
+    <NuGetPackageImportStamp>
+    </NuGetPackageImportStamp>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Autofac, Version=4.8.1.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
+      <HintPath>..\packages\Autofac.4.8.1\lib\net45\Autofac.dll</HintPath>
+    </Reference>
+    <Reference Include="Castle.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
+      <HintPath>..\packages\Castle.Core.4.3.1\lib\net45\Castle.Core.dll</HintPath>
+    </Reference>
+    <Reference Include="Moq, Version=4.9.0.0, Culture=neutral, PublicKeyToken=69f491c39445e920, processorArchitecture=MSIL">
+      <HintPath>..\packages\Moq.4.9.0\lib\net45\Moq.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Configuration" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Threading.Tasks.Extensions, Version=4.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
+      <HintPath>..\packages\System.Threading.Tasks.Extensions.4.3.0\lib\portable-net45+win8+wp8+wpa81\System.Threading.Tasks.Extensions.dll</HintPath>
+    </Reference>
+    <Reference Include="System.ValueTuple, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
+      <HintPath>..\packages\System.ValueTuple.4.4.0\lib\net47\System.ValueTuple.dll</HintPath>
+      <Private>True</Private>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Xml" />
+    <Reference Include="xunit.abstractions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
+      <HintPath>..\packages\xunit.abstractions.2.0.2\lib\net35\xunit.abstractions.dll</HintPath>
+    </Reference>
+    <Reference Include="xunit.assert, Version=2.4.0.4049, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
+      <HintPath>..\packages\xunit.assert.2.4.0\lib\netstandard2.0\xunit.assert.dll</HintPath>
+    </Reference>
+    <Reference Include="xunit.core, Version=2.4.0.4049, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
+      <HintPath>..\packages\xunit.extensibility.core.2.4.0\lib\net452\xunit.core.dll</HintPath>
+    </Reference>
+    <Reference Include="xunit.execution.desktop, Version=2.4.0.4049, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
+      <HintPath>..\packages\xunit.extensibility.execution.2.4.0\lib\net452\xunit.execution.desktop.dll</HintPath>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="StrategyPattern\NoStrategyPatternTest.cs" />
+    <Compile Include="xUnitTest.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\DesignPatternStudy.Learn\DesignPatternStudy.Learn.csproj">
+      <Project>{9ce997bc-abf1-4ad0-99c2-b97a8bf91659}</Project>
+      <Name>DesignPatternStudy.Learn</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="packages.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <Analyzer Include="..\packages\xunit.analyzers.0.10.0\analyzers\dotnet\cs\xunit.analyzers.dll" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+    <PropertyGroup>
+      <ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
+    </PropertyGroup>
+    <Error Condition="!Exists('..\packages\xunit.core.2.4.0\build\xunit.core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.core.2.4.0\build\xunit.core.props'))" />
+    <Error Condition="!Exists('..\packages\xunit.core.2.4.0\build\xunit.core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.core.2.4.0\build\xunit.core.targets'))" />
+    <Error Condition="!Exists('..\packages\xunit.runner.visualstudio.2.4.0\build\net20\xunit.runner.visualstudio.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.runner.visualstudio.2.4.0\build\net20\xunit.runner.visualstudio.props'))" />
+  </Target>
+  <Import Project="..\packages\xunit.core.2.4.0\build\xunit.core.targets" Condition="Exists('..\packages\xunit.core.2.4.0\build\xunit.core.targets')" />
+</Project>
\ No newline at end of file
diff --git a/DesignPatternStudy.LearnTest/Properties/AssemblyInfo.cs b/DesignPatternStudy.LearnTest/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..fb90538
--- /dev/null
+++ b/DesignPatternStudy.LearnTest/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 有关程序集的一般信息由以下
+// 控制。更改这些特性值可修改
+// 与程序集关联的信息。
+[assembly: AssemblyTitle("DesignPatternStudy.LearnTest")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("DesignPatternStudy.LearnTest")]
+[assembly: AssemblyCopyright("Copyright ©  2018")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 将 ComVisible 设置为 false 会使此程序集中的类型
+//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
+//请将此类型的 ComVisible 特性设置为 true。
+[assembly: ComVisible(false)]
+
+// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
+[assembly: Guid("1ff6f739-4df3-4c72-89c7-4decfc3c6f9e")]
+
+// 程序集的版本信息由下列四个值组成: 
+//
+//      主版本
+//      次版本
+//      生成号
+//      修订号
+//
+// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
+//通过使用 "*",如下所示:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/DesignPatternStudy.LearnTest/StrategyPattern/NoStrategyPatternTest.cs b/DesignPatternStudy.LearnTest/StrategyPattern/NoStrategyPatternTest.cs
new file mode 100644
index 0000000..d936913
--- /dev/null
+++ b/DesignPatternStudy.LearnTest/StrategyPattern/NoStrategyPatternTest.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Xunit;
+
+using DesignPatternStudy.Learn;
+using DesignPatternStudy.Learn.StrategyPattern.NoPattern;
+
+namespace DesignPatternStudy.Learn.StrategyPattern
+{
+    public class NoStrategyPatternTest:IDisposable
+    {
+        NoStrategyPattern noStrategy;
+
+        public NoStrategyPatternTest()
+        {
+            noStrategy = new NoStrategyPattern();
+        }
+
+        [Fact]
+        public void GetPriceTest()
+        {
+            var price1 = noStrategy.GetPrice(100m,1);
+            Assert.Equal(90, price1);
+        }
+
+        public void Dispose()
+        {
+             
+        }
+    }
+}
diff --git a/DesignPatternStudy.LearnTest/packages.config b/DesignPatternStudy.LearnTest/packages.config
new file mode 100644
index 0000000..0146749
--- /dev/null
+++ b/DesignPatternStudy.LearnTest/packages.config
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="Autofac" version="4.8.1" targetFramework="net47" />
+  <package id="Castle.Core" version="4.3.1" targetFramework="net47" />
+  <package id="Moq" version="4.9.0" targetFramework="net47" />
+  <package id="System.Threading.Tasks.Extensions" version="4.3.0" targetFramework="net47" />
+  <package id="System.ValueTuple" version="4.4.0" targetFramework="net47" />
+  <package id="xunit" version="2.4.0" targetFramework="net47" />
+  <package id="xunit.abstractions" version="2.0.2" targetFramework="net47" />
+  <package id="xunit.analyzers" version="0.10.0" targetFramework="net47" />
+  <package id="xunit.assert" version="2.4.0" targetFramework="net47" />
+  <package id="xunit.core" version="2.4.0" targetFramework="net47" />
+  <package id="xunit.extensibility.core" version="2.4.0" targetFramework="net47" />
+  <package id="xunit.extensibility.execution" version="2.4.0" targetFramework="net47" />
+  <package id="xunit.runner.visualstudio" version="2.4.0" targetFramework="net47" developmentDependency="true" />
+</packages>
\ No newline at end of file
diff --git a/DesignPatternStudy.LearnTest/xUnitTest.cs b/DesignPatternStudy.LearnTest/xUnitTest.cs
new file mode 100644
index 0000000..6850cbf
--- /dev/null
+++ b/DesignPatternStudy.LearnTest/xUnitTest.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Xunit;
+
+namespace DesignPatternStudy.LearnTest
+{
+    public class xUnitTest
+    {
+        [Fact]
+        public void Test()
+        {
+            Assert.True(true, "xUnit环境测试");
+        }
+    }
+}
diff --git a/设计模式学习.sln b/设计模式学习.sln
new file mode 100644
index 0000000..4bf1f2b
--- /dev/null
+++ b/设计模式学习.sln
@@ -0,0 +1,31 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.28010.2003
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DesignPatternStudy.Learn", "DesignPatternStudy.Learn\DesignPatternStudy.Learn.csproj", "{9CE997BC-ABF1-4AD0-99C2-B97A8BF91659}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DesignPatternStudy.LearnTest", "DesignPatternStudy.LearnTest\DesignPatternStudy.LearnTest.csproj", "{1FF6F739-4DF3-4C72-89C7-4DECFC3C6F9E}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{9CE997BC-ABF1-4AD0-99C2-B97A8BF91659}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{9CE997BC-ABF1-4AD0-99C2-B97A8BF91659}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{9CE997BC-ABF1-4AD0-99C2-B97A8BF91659}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{9CE997BC-ABF1-4AD0-99C2-B97A8BF91659}.Release|Any CPU.Build.0 = Release|Any CPU
+		{1FF6F739-4DF3-4C72-89C7-4DECFC3C6F9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{1FF6F739-4DF3-4C72-89C7-4DECFC3C6F9E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{1FF6F739-4DF3-4C72-89C7-4DECFC3C6F9E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{1FF6F739-4DF3-4C72-89C7-4DECFC3C6F9E}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {90488EA0-2B66-4878-AB50-82BE3EC38CA5}
+	EndGlobalSection
+EndGlobal