久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

在 C# 中生成代码的四种方式——包括.NET 5中的Source Generators

發布時間:2023/12/4 C# 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在 C# 中生成代码的四种方式——包括.NET 5中的Source Generators 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Microsoft在最新的C#版本中引入了Source Generator。這是一項新功能,可以讓我們在代碼編譯時生成源代碼。在本文中,我將介紹四種C#中的代碼生成方式,以簡化我們的日常工作。然后,您可以視情況選擇正確的方法。

在 .NET 中,我們有以下幾種方法來幫助我們生成代碼:

  • Code snippets.

  • Reflection.

  • T4 Template.

  • [New] Source Generators in .NET 5.

應該還有更多,但本文將主要覆蓋這四種方式。您可以參考我發布在GitHub上的demo: https://github.com/yanxiaodi/MyCodeSamples/tree/main/CodeGeneratorDemo. 讓我們開始吧!

Code snippets

Code snippets 是可重用的代碼塊,可以使用熱鍵組合將其插入我們的代碼文件中。例如,如果在Visual Studio中鍵入prop然后按Tab,VS將在您的類中自動生成一個屬性,然后您可以輕松地替換屬性名稱。VS已經為我們提供了大量的內置的代碼片段,如prop,if,while,for,try,您可以在這里找到所有的默認代碼片段列表:C# Code Snippets[1]

Code snippets 的好處是您可以替換參數。例如,當我們將MVVM模式用于UWP / Xamarin / WPF應用程序時,經常需要在實現INotifyPropertyChanged[2]接口的類中創建屬性。如果您使用MvvmCross框架,它可能看起來像這樣:

private?ObservableCollection<Comment>?_commentList; public?ObservableCollection<Comment>?CommentList {get?=>?_commentList;set?=>?SetProperty(ref?_commentList,?value); }

我們不想復制/粘貼然后更改變量名,所以我創建了一個 Code snippet 來簡化工作。創建一個名為myMvvm.snippet的新文件,然后復制并粘貼以下代碼:

<?xml?version="1.0"?encoding="utf-8"?> <CodeSnippets?xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"><CodeSnippet?Format="1.0.0"><Header><SnippetTypes><SnippetType>Expansion</SnippetType></SnippetTypes><Title>MvvmCross?property</Title><Author>Xiaodi?Yan</Author><Shortcut>mvxprop</Shortcut><Description>A?property?in?a?ViewModel?in?the?Xamarin?project?with?MvvmCross.</Description></Header><Snippet><Declarations><Literal><ID>Property</ID><ToolTip>Property?name</ToolTip><Default>Property</Default></Literal><Object><ID>type</ID><ToolTip>Property?type</ToolTip><Default>string</Default></Object><Literal><ID>pProperty</ID><ToolTip>Private?property?name</ToolTip><Default>property</Default></Literal></Declarations><Code?Language="csharp"><![CDATA[#region?$Property$;private?$type$?_$pProperty$;public?$type$?$Property${get?=>?_$pProperty$;set?=>?SetProperty(ref?_$pProperty$,?value);}#endregion]]></Code></Snippet></CodeSnippet> </CodeSnippets>????

在此 Code snippet 中,我們使用<Shortcut>指定快捷方式mvxprop,并使用<Declarations>聲明一些參數。例如,我們聲明了一個名為的參數Property,然后使用$Property將其插入到代碼段中。您可以通過VS Tools 菜單中的Code Snippets Manager導入此 Code snippet(或按Ctrl + K,Ctrl + B)。

現在,您可以鍵入mvxprop并按Tab,VS可以為您創建屬性-您只需手動替換屬性名稱即可。

更多信息請參考:

  • Walkthrough: Create a code snippet[3]

  • Code snippet functions[4]

  • How to: Distribute code snippets[5]

Code snippets 適合重復使用以插入整個類或方法或屬性。您還可以將 Code snippets 分發給其他用戶。當我們創建新文件或 Class 或 Method 時,這很有用。但是,如果要在完成后更新生成的代碼,則必須刪除現有代碼,然后重新創建它。基本上,它可以節省無聊的復制/粘貼時間,但僅此而已。

Reflection

Reflection(反射)廣泛用于許多.NET框架和庫中,例如ASP.NET Core[6],Entity Framework Core[7]等。它可以提供類型的[8]對象,該對象描述程序集,模塊和類型,以便您可以動態創建類型的實例,從現有對象獲取類型,然后調用其方法或訪問其字段和屬性。

當我們構建.NET應用程序時,它將生成程序集-例如.dll文件。這些程序集包含我們的模塊,其中包含某些類型。類型包含成員。Reflection 能夠獲取這些信息。因此,我們可以動態加載新的.dll文件并調用它們的方法或事件,而無需編輯代碼。動態表示它可以在運行時運行。換句話說,當我們編譯應用程序時,.NET應用程序直到運行時才知道我們需要使用什么類型。通過這種方式,我們可以創建一個客戶端,該客戶端可以根據我們的規則動態執行其他程序集中的方法。如果我們遵循該規則更新其他程序集中的類,則不需要更新客戶端代碼。

讓我們查看以下示例。您可以在我的示例項目中找到它。我們在CodeGeneratorDemo.ReflectionDemo.Core項目中有一個ISpeaker接口,如下所示:

namespace?CodeGeneratorDemo.ReflectionDemo.Core {public?interface?ISpeaker{string?SayHello();} }

創建兩個實現類:

ChineseSpeaker:

namespace?CodeGeneratorDemo.ReflectionDemo.Core {public?class?ChineseSpeaker?:?ISpeaker{public?string?Name?=>?this.GetType().ToString();public?string?SayHello(){return?"Nihao";}} }

以及 EnglishSpeaker:

namespace?CodeGeneratorDemo.ReflectionDemo.Core {public?class?EnglishSpeaker?:?ISpeaker{public?string?Name?=>?this.GetType().ToString();public?string?SayHello(){return?"Hello!";}} }

現在,我們可以使用 Reflection 來查找ISpeaker接口的所有實現,并調用其方法或屬性。

CodeGeneratorDemo.ReflectionDemo項目中創建一個名為ReflectionHelper的新文件:

using?CodeGeneratorDemo.ReflectionDemo.Core; using?System; using?System.Collections.Generic; using?System.IO; using?System.Linq; using?System.Reflection;namespace?CodeGeneratorDemo.ReflectionDemo {public?class?ReflectionHelper{public?static?List<Type>?GetAvailableSpeakers(){//?You?can?also?use?AppDomain.CurrentDomain.GetAssemblies()?to?load?all?assemblies?in?the?current?domain.//?Get?the?specified?assembly.var?assembly?=Assembly.LoadFrom(Path.Combine(Directory.GetCurrentDirectory(),?"CodeGeneratorDemo.ReflectionDemo.Core.dll"));//?Find?all?the?types?in?the?assembly.var?types?=?assembly.GetTypes();//?Apply?the?filter?to?find?the?implementations?of?ISayHello?interface.var?result?=?types.Where(x?=>?x.IsClass?&&?typeof(ISpeaker).IsAssignableFrom(x)).ToList();//?Or?you?can?use?types.Where(x?=>?x.IsClass?&&?x.GetInterfaces().Contains(typeof(ISpeaker))).ToList();return?result;}} }

在此類中,我們加載包含所需類型的指定dll文件。然后,我們可以使用 Reflection 并應用LINQ查詢來找到所有ISpeaker接口的實現。

CodeGeneratorDemo.Client項目中,我們可以輸出每個Speaker的Name屬性和調用SayHello方法:

private?static?void?ReflectionSample() {Console.WriteLine("Here?is?the?Reflection?sample:");//?Find?all?the?speakers?in?the?current?domainvar?availableSpeakers?=?ReflectionHelper.GetAvailableSpeakers();foreach?(var?availableSpeaker?in?availableSpeakers){//?Create?the?instance?of?the?typevar?speaker?=?Activator.CreateInstance(availableSpeaker);//?Get?the?property?info?of?the?given?property?namePropertyInfo?namePropertyInfo?=?availableSpeaker.GetProperty("Name");//?Then?you?can?get?the?value?of?the?propertyvar?name?=?namePropertyInfo?.GetValue(speaker)?.ToString();Console.WriteLine($"I?am?{name}");//?Invoke?the?method?of?the?instanceConsole.WriteLine(availableSpeaker.InvokeMember("SayHello",?BindingFlags.InvokeMethod,?null,?speaker,?null));}Console.WriteLine(); }

運行該程序,您將看到以下輸出:

Here?is?the?Reflection?sample: I?am?CodeGeneratorDemo.ReflectionDemo.Core.ChineseSpeaker Nihao I?am?CodeGeneratorDemo.ReflectionDemo.Core.EnglishSpeaker Hello!

如果我們需要添加其他語言的其他Speaker,只需在同一項目中添加實現類。.NET Reflection 可以自動找出所有必需的類并正確調用方法。

當我們創建插件類型的應用程序時,它非常有用。首先,我們創建接口并通過反射從客戶端調用方法。然后,我們可以在客戶端界面之后創建插件,這些插件可以作為* .dll文件動態加載并執行。

另一種情況是框架開發。作為框架開發人員,您將無法知道用戶將創建哪些實現,因此只能使用 Reflection 來創建這些實例。例如在某些MVVM框架中,如果按照約定創建類,如xxxViewModel,該框架可以找到所有 ViewModel 并使用 Reflection 自動加載它們。

通常,當人們談論反射時,主要關注的是性能。因為它在運行時運行,所以從理論上講,它比普通應用程序要慢一點。但是它在許多情況下都非常靈活,尤其是在開發框架的情況下。如果可以接受程序花費幾秒鐘(或僅幾百毫秒)來加載程序集,則使用Reflection是沒有問題的。

使用Reflection的所需的主要名稱空間是System.Reflection[9]和System.Type[10]。您可能還需要了解以下術語:

  • Assembly[11]

  • Module[12]

  • ConstructorInfo[13]

  • MethodInfo[14]

  • FieldInfo[15]

  • EventInfo[16]

  • PropertyInfo[17]

  • ParameterInfo[18]

  • CustomAttributeData[19]

更多信息請參考以下文檔:

  • Reflection in .NET[20]

  • Viewing Type Information[21]

  • Dynamically Loading and Using Types[22]

T4 Template

T4 Text Template是文本塊和可以生成文本文件的控制邏輯的混合體。T4表示text template transformation。您可以使用它在Visual Studio 中為 C# 和 Visual Basic 生成文件。但是生成的文件本身可以是任何類型的文本,例如* .txt文件,HTML文件或任何語言的程序源代碼。您可以使用C#代碼(或VB)來控制模板中的邏輯。幾年前,我曾經使用NuGet包(EntityFramework Reverse POCO Generator)為EntityFramework生成POCO模型。它由T4 Template 實現。我只需要更新T4 Template 中的數據庫連接字符串并保存它,然后T4 Template 就可以讀取數據庫信息并自動創建所有模型和方法。

T4 Template 有兩種:運行時設計時。區別在于,運行時T4 Template在應用程序中執行以生成文本字符串。它將創建一個包含TransformText()方法的 .cs類。即使目標計算機未安裝Visual Studio,也可以調用此方法來生成字符串。與此不同的是,對設計時T4 Template來說,當您在Visual Studio中保存模板時,會生成原始源代碼或文本文件。如果要使用運行時T4 Template,則需要將文件的Custom Tool 屬性設置為TextTemplatingFilePreprocessor。對于設計時T4 Template,Custom Tool屬性應設置為TextTemplatingFileGenerator

您可以在CodeGeneratorDemo.T4TemplateDemo項目中找到示例,包含兩個T4 Template:RunTimeTextTemplateDemo.ttDesignTimeTextTemplateDemo.tt

運行時 T4 Template

要正確生成項目,您需要安裝System.CodeDom NuGet軟件包。打開RunTimeTextTemplateDemo.tt文件,對HTML代碼進行一些更改,然后將其保存。您將看到T4 Template 自動更新生成的文件RunTimeTextTemplateDemo.cs。其中包含一個可以在客戶端代碼中調用的TransformText()方法。

<#@?template?language="C#"?#> <#@?assembly?name="System.Core"?#> <#@?import?namespace="System.Linq"?#> <#@?import?namespace="System.Text"?#> <#@?import?namespace="System.Collections.Generic"?#> <html><body> <h1>Sales?for?Previous?Month</h2> <table><#?for?(int?i?=?1;?i?<=?10;?i++){?#><tr><td>Test?name?<#=?i?#>?</td><td>Test?value?<#=?i?*?i?#>?</td>?</tr><#?}?#></table> This?report?is?Company?Confidential. </body></html>

每次保存模板時,它將更新生成的文件。在客戶端代碼中,我們可以這樣調用:

var?page?=?new?RunTimeTextTemplateDemo(); Console.WriteLine(page.TransformText());

您將在控制臺中看到生成的HTML代碼。

設計時 T4 Template

設計時模板只能在開發程序時在Visual Studio中使用。它會生成原始文本文件-可以是.cs,.html或.txt或其他任意格式的文本文件。通常,您將需要定義一個model,可以是文本文件(XML或JSON或csv或其他)或數據庫,然后模板從模型中讀取數據并生成一些源代碼。

這是一個例子:

<#@?template?debug="false"?hostspecific="true"?language="C#"?#> <#@?assembly?name="System.Core"?#> <#@?import?namespace="System.Linq"?#> <#@?import?namespace="System.Text"?#> <#@?import?namespace="System.Collections.Generic"?#> <#@?import?namespace="System.IO"?#> <#@?output?extension=".cs"?#>using?System; using?System.Threading.Tasks;namespace?CodeGeneratorDemo.T4TemplateDemo.DesignTimeTextTemplateDemo { <#?var?models?=?new?List<string>();//?You?can?read?the?data?from?any?source?you?have.string?path?=?Path.Combine(Path.GetDirectoryName(this.Host.TemplateFile),?"dataSource.txt");if(File.Exists(path)){models?=?File.ReadAllText(path).Split(',').ToList();}foreach?(var?model?in?models){#>public?partial?class?<#=model#>{public?Guid?Id?{?get;?set;?}public?<#=model#>(Guid?id){Id?=?id;}}public?partial?class?<#=model#>Service{public?Task<<#=model#>>?Get<#=model#>(Guid?id){return?Task.FromResult(new?<#=model#>(id));}} <#} #> }

保存模板時,T4 Template 可以為每個類生成模型和服務。

如何創建T4 Template

從上面的示例中可以看到,T4 Template由以下部分組成:

  • 指令-控制模板處理方式的元素。

  • 文本塊-直接復制到輸出的原始文本。

  • 控制塊-將變量值插入文本中并控制文本的有條件或重復部分的程序代碼。

例如,您可以使用以下指令指定輸出文件格式:

<#@?output?extension=".txt"?#>

您也可以使用C#代碼控制邏輯。例如,檢查以下代碼:

<#for(int?i?=?0;?i?<?4;?i++){ #> Hello! <#} #>

它將輸出Hello四次。在此示例中,Hello是一個文本塊,而該for語句只是C#代碼。

要使用變量,可以使用表達式控制塊。只需使用<#= ... #>輸出變量,如下所示:

<#string?message?=?"Hello";for(int?i?=?0;?i?<?4;?i++){ #><#=message#> <#} #>

它將輸出Hello四次。

T4模板的強大功能是,您可以導入程序集并使用所需的大多數.NET庫,例如:

<#@?assembly?name="System.Core"?#> <#@?import?namespace="System.Linq"?#> <#@?import?namespace="System.Text"?#> <#@?import?namespace="System.Collections.Generic"?#> <#@?import?namespace="System.IO"?#>

請注意,您需要將它們放置在原始文本和控制塊之前。您甚至可以在控制塊中使用反射。有了這些功能,我們可以為某些情況編寫非常有用的模板。

調試 T4 Template

像普通的C#程序一樣,我們可以通過設置斷點來調試T4 Template。要調試設計時T4 Template,請右鍵單擊該模板,然后從Solution Explorer中的文件菜單中選擇Debug T4 template。要調試運行時T4 Template,只需調試項目,因為它會在程序編譯時運行。

T4 Template 編輯器

默認情況下,Visual Studio不支持語法著色和智能感知等。幸運的是,我們有一些VS擴展來提高工作效率,例如DevArt T4 Editor[23]。您可以在VS擴展市場中搜索T4 Template,您將找到更多。

我們不會在本文中介紹T4模板的所有詳細信息。有關更多信息,請閱讀以下文檔:

  • Code Generation and T4 Text Templates[24]

  • Walkthrough: Generate Code by using Text Templates[25]

  • Run-Time Text Generation with T4 Text Templates[26]

  • T4 Text Template Directives[27]

  • Text Template Control Blocks[28]

  • Guidelines for Writing T4 Text Templates[29]

Source Generators in .NET 5

要開始使用Source Generators,您需要安裝最新的.NET 5 SDK[30]

什么是 Source Generator?它是如何工作的?

根據微軟的定義:

A Source Generator is a piece of code that runs during compilation and can inspect your program to produce additional files that are compiled together with the rest of your code.

讓我們回顧一下Reflection的工作原理。如前所述,在構建應用程序時,Reflection代碼直到應用程序運行時才知道它將使用什么類型。這就是為什么人們抱怨Reflection的性能。如果在應用啟動時要加載很多程序集,則可能會對性能產生輕微的影響。這個問題很難解決,因為這是Reflection的弊端-您可以從開發中受益,但是您必須接受它的缺點。

Source Generators可用于解決性能問題-至少,提高性能是其重要目標之一。Source Generators可以分析當前源代碼,并在代碼編譯過程中生成一些將與當前源代碼一起編譯的代碼-換句話說,當應用程序完成編譯時,它已經完全知道它將使用哪種類型。這是改進的關鍵。

這是Microsoft提供的的Source Generators的示意圖:

我們需要知道的一件事是,源生成器只能向代碼中添加內容,而不能更改任何現有代碼。讓我們來看一個例子。

第一個 Source Generator 實例

Source Generate 需要實現 Microsoft.CodeAnalysis.ISourceGenerator接口:

namespace?Microsoft.CodeAnalysis {public?interface?ISourceGenerator{void?Initialize(GeneratorInitializationContext?context);void?Execute(GeneratorExecutionContext?context);} }

創建一個名為CodeGeneratorDemo.SourceGeneratorDemo的新.NET Standard 2.0 Class項目。安裝以下兩個NuGet軟件包:

  • Microsoft.CodeAnalysis.CSharp v3.8+

  • Microsoft.CodeAnalysis.Analyzers v3.3+

我們還需要將語言版本指定為preview:

<PropertyGroup><TargetFramework>netstandard2.0</TargetFramework><LangVersion>preview</LangVersion> </PropertyGroup>

從技術上講,源生成器還不是C#的正式功能,現在仍在預覽中。因此,我們需要明確指定preview版本。

然后在項目中創建一個SpeakersSourceGenerator.cs文件。更新內容,如下所示:

using?Microsoft.CodeAnalysis; using?Microsoft.CodeAnalysis.CSharp.Syntax; using?Microsoft.CodeAnalysis.Text; using?System.Collections.Generic; using?System.Text;namespace?CodeGeneratorDemo.SourceGeneratorDemo {[Generator]public?class?SpeakersSourceGenerator?:?ISourceGenerator{public?void?Initialize(GeneratorInitializationContext?context){//?Not?needed?for?this?sample}public?void?Execute(GeneratorExecutionContext?context){//?begin?creating?the?source?we'll?inject?into?the?users?compilationvar?sourceBuilder?=?new?StringBuilder(@" using?System; namespace?CodeGeneratorDemo.SourceGeneratorDemo {public?static?class?SpeakerHelper{public?static?void?SayHello()?{Console.WriteLine(""Hello?from?generated?code!""); ");sourceBuilder.Append(@"}} }");//?inject?the?created?source?into?the?users?compilationcontext.AddSource("speakersSourceGenerator",?SourceText.From(sourceBuilder.ToString(),?Encoding.UTF8));}} }

該SpeakersSourceGenerator類實現了ISourceGenerator接口,并具有Generator屬性。程序編譯時,它將找到Source Generators并生成我們需要的代碼。在此示例中,我僅創建了一個名為SpeakerHelper的類,包含一個SayHello()方法。如果我們正確生成了代碼,它將在控制臺中輸出消息。

接下來,將引用添加到CodeGeneratorDemo.Client項目。請注意,您需要像這樣更新項目文件:

<Project?Sdk="Microsoft.NET.Sdk"><PropertyGroup><OutputType>Exe</OutputType><TargetFramework>net5.0</TargetFramework><LangVersion>preview</LangVersion></PropertyGroup><ItemGroup><ProjectReference?Include="..\CodeGeneratorDemo.SourceGeneratorDemo\CodeGeneratorDemo.SourceGeneratorDemo.csproj"?OutputItemType="Analyzer"ReferenceOutputAssembly="false"/></ItemGroup> </Project>

您還需要指定語言版本。另外,由于我們沒有將項目引用為普通的dll文件,因此我們需要更新OutputItemType和ReferenceOutputAssembly的值,如上所示。

在客戶端代碼中添加代碼:

private?static?void?SourceGeneratorSample() {CodeGeneratorDemo.SourceGeneratorDemo.SpeakerHelper.SayHello(); }

您可能會看到VS報錯,找不到CodeGeneratorDemo.SourceGeneratorDemo.SpeakerHelper,因為我們的代碼中還沒有這個類。Source Generators的工具仍在預覽中,因此我們需要構建CodeGeneratorDemo.SourceGeneratorDemo項目并關閉VS,然后重新啟動它。然后,您會發現VS可以支持智能感知了。當我們構建它時,Source Generators實際上會生成SpeakerHelper類。現在運行客戶端應用程序,我們可以看到輸出,來自生成的代碼:

Hello?from?generated?code!

因此,這個過程是,當我們構建項目時,將調用Source Generators來生成一些可以與原始源代碼一起編譯的代碼。這樣,就不會出現性能問題,因為它發生在編譯中。當應用程序啟動時,生成的代碼已與其他源代碼一起編譯。

根據我的經驗,有時VS無法識別生成的方法或類,只要構建正確運行即可。

如果在客戶端代碼中按一下F12以檢查SayHello()方法,您將看到生成的文件,該文件顯示此文件無法編輯:

您可能很好奇文件在哪里。如果要查看實際生成的文件,可以將以下部分添加到CodeGeneratorDemo.SourceGeneratorDemo項目和CodeGeneratorDemo.Client項目中:

<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles> <CompilerGeneratedFilesOutputPath>$(BaseIntermediateOutputPath)\GeneratedFiles</CompilerGeneratedFilesOutputPath>

然后,您可以在obj/GeneratedFiles文件夾中找到該文件。如果未指定CompilerGeneratedFilesOutputPath屬性,則該屬性應位于obj/SourceGeneratorFiles文件夾中。

這只是一個非常簡單的示例,展示了如何在運行時之前生成代碼。接下來,讓我們看另一個更復雜的示例。

在編譯時生成Attribute

考慮以下場景:當我們使用依賴注入時,通常我們需要手動注冊實例。對于此演示,我將創建一個Attribute[31]來裝飾需要注冊的類。我們可以使用Reflection來檢索這些屬性以找到特定的類,但是操作可能很昂貴。使用Source Generators,我們可以在編譯時生成代碼,以在運行時之前對其進行注冊。

創建一個新類AutoRegisterSourceGenerator,如下所示:

[Generator] public?class?AutoRegisterSourceGenerator?:?ISourceGenerator {public?void?Initialize(GeneratorInitializationContext?context){//?TODO}public?void?Execute(GeneratorExecutionContext?context){//?TODO} }

接下來,讓我們創建Attribute。我們可以創建一個實際的類,但是為了進行演示,我將使用Source Generator生成它。將以下代碼添加到AutoRegisterSourceGenerator:

private?const?string?AttributeText?=?@" using?System; namespace?CodeGeneratorDemo.SourceGeneratorDemo {[AttributeUsage(AttributeTargets.Class,?Inherited?=?false,?AllowMultiple?=?false)]sealed?class?AutoRegisterAttribute?:?Attribute{public?AutoRegisterAttribute(){}} }";

這只是一個字符串。接下來,更新Execute方法以將字符串添加到源代碼中:

public?void?Execute(GeneratorExecutionContext?context) {context.AddSource("AutoRegisterAttribute",?SourceText.From(AttributeText,?Encoding.UTF8)); }

當我們構建項目時,它將生成AutoRegisterAttribute。

下一步是創建一些接口:

namespace?CodeGeneratorDemo.Client.Core {public?interface?IOrderService{}public?interface?IProductService{} }

還有一些實現類,例如OrderService和ProductService,由AutoRegister屬性裝飾:

using?System; using?CodeGeneratorDemo.SourceGeneratorDemo;namespace?CodeGeneratorDemo.Client.Core {[AutoRegister]public?class?OrderService?:?IOrderService{public?OrderService(){Console.WriteLine($"{this.GetType()}?constructed.");}}[AutoRegister]public?class?ProductService?:?IProductService{public?ProductService(){Console.WriteLine($"{this.GetType()}?constructed.");}} }

目前,我們的代碼中沒有AutoRegister。因此,您將看到VS報錯。沒關系,因為稍后Source Generator會生成它。

我們將調用另一個類DiContainerMocker來模擬DI容器:

using?System; namespace?CodeGeneratorDemo.Client.Core {public?static?class?DiContainerMocker{public?static?void?RegisterService<TInterface,?TImplementation>(TImplementation?service){Console.WriteLine($"{service.GetType()}?has?been?registered?for?{typeof(TInterface)}.");}} }

Source Generators依賴于Roslyn[32]。它可以檢查要編譯的數據。我們可以使用稱為SyntaxReceivers的對象來訪問SyntaxTrees,然后根據這些信息進行迭代其中的SyntaxNodes,然后生成代碼。

創建一個名為MySyntaxReceiver的新類,該類實現了ISyntaxReceiver接口:

public?class?MySyntaxReceiver?:?ISyntaxReceiver {public?List<ClassDeclarationSyntax>?CandidateClasses?{?get;?}?=?new?List<ClassDeclarationSyntax>();///?<summary>///?Called?for?every?syntax?node?in?the?compilation,?we?can?inspect?the?nodes?and?save?any?information?useful?for?generation///?</summary>public?void?OnVisitSyntaxNode(SyntaxNode?syntaxNode){//?any?method?with?at?least?one?attribute?is?a?candidate?for?property?generationif?(syntaxNode?is?ClassDeclarationSyntax?classDeclarationSyntax&&?classDeclarationSyntax.AttributeLists.Count?>=?0){CandidateClasses.Add(classDeclarationSyntax);}} }

在這個類中,我們將檢查每個SyntaxNode。如果它是一個Class并且具有Attribute,那么我們將其添加到列表中。

接下來,我們需要在Source Generator的Initialize方法中注冊MySyntaxReceiver:

public?void?Initialize(GeneratorInitializationContext?context) {context.RegisterForSyntaxNotifications(()?=>?new?MySyntaxReceiver()); }

現在來完成我們的Source Generator。我的想法是,我們將依次檢查每個SyntaxNode,如果它是一個Class并具有AutoRegister屬性那么就生成注冊代碼。通過以下代碼更新Execute方法:

????????public?void?Execute(GeneratorExecutionContext?context){context.AddSource("AutoRegisterAttribute",?SourceText.From(AttributeText,?Encoding.UTF8));if?(!(context.SyntaxReceiver?is?MySyntaxReceiver?receiver)){return;}CSharpParseOptions?options?=?(context.Compilation?as?CSharpCompilation).SyntaxTrees[0].Options?as?CSharpParseOptions;SyntaxTree?attributeSyntaxTree?=CSharpSyntaxTree.ParseText(SourceText.From(AttributeText,?Encoding.UTF8),?options);Compilation?compilation?=?context.Compilation.AddSyntaxTrees(attributeSyntaxTree);StringBuilder?stringBuilder?=?new?StringBuilder();stringBuilder.Append(@" using?System; using?CodeGeneratorDemo.Client.Core; namespace?CodeGeneratorDemo.SourceGeneratorDemo {public?class?RegisterHelper{public?static?void?RegisterServices(){ ");//?Get?all?the?classes?with?the?AutoRegisterAttributeINamedTypeSymbol?attributeSymbol?=compilation.GetTypeByMetadataName("CodeGeneratorDemo.SourceGeneratorDemo.AutoRegisterAttribute");foreach?(var?candidateClass?in?receiver.CandidateClasses){SemanticModel?model?=?compilation.GetSemanticModel(candidateClass.SyntaxTree);if?(model.GetDeclaredSymbol(candidateClass)?is?ITypeSymbol?typeSymbol?&&typeSymbol.GetAttributes().Any(x?=>x.AttributeClass.Equals(attributeSymbol,?SymbolEqualityComparer.Default))){stringBuilder.Append($@"DiContainerMocker.RegisterService<I{candidateClass.Identifier.Text},?{candidateClass.Identifier.Text}>(new?{candidateClass.Identifier.Text}());");}}stringBuilder.Append(@"}} }");context.AddSource("RegisterServiceHelper",?SourceText.From(stringBuilder.ToString(),?Encoding.UTF8));}}

如果您不熟悉Roslyn,則這個方法可能看起來有點復雜。它使用Roslyn API來獲取類的元數據-與Reflection類似。您可以檢查文檔以獲取更多信息:

  • Work with syntax[33]

  • Work with semantics[34]

  • Explore code with the Roslyn syntax visualizer in Visual Studio[35]

為了更好地檢查項目中的語法樹,您可以從Visual Studio Installer安裝**.NET Compiler Platform SDK**,該工具為VS2019提供SyntaxVisualizer窗口。

一旦找到由AutoRegister屬性修飾的類,就可以將注冊實例的代碼添加到源代碼中。生成的代碼將與原始代碼一起編譯。通過這種方式,我們避免了Reflection的昂貴成本并提高了性能。

最后,我們可以在客戶端中調用生成的代碼:

private?static?void?SourceGeneratorSample() {Console.WriteLine("Here?is?the?simple?Source?Generator?sample:");CodeGeneratorDemo.SourceGeneratorDemo.SpeakerHelper.SayHello();Console.WriteLine();Console.WriteLine("Here?is?the?AutoRegisterAttribute?Source?Generator?sample:");CodeGeneratorDemo.SourceGeneratorDemo.RegisterHelper.RegisterServices(); }

您需要編譯CodeGeneratorDemo.SourceGeneratorDemo項目,重新打開VS2019。然后您可以看到如下輸出:

Here?is?the?AutoRegisterAttribute?Source?Generator?sample: CodeGeneratorDemo.Client.Core.OrderService?constructed. CodeGeneratorDemo.Client.Core.OrderService?has?been?registered?for?CodeGeneratorDemo.Client.Core.IOrderService. CodeGeneratorDemo.Client.Core.ProductService?constructed. CodeGeneratorDemo.Client.Core.ProductService?has?been?registered?for?CodeGeneratorDemo.Client.Core.IProductService.

如果您在RegisterServices()方法上按F12檢查它的定義,可以發現生成的代碼如下:

using?System; using?CodeGeneratorDemo.SourceGeneratorDemo.Core; namespace?CodeGeneratorDemo.SourceGeneratorDemo {public?class?RegisterHelper{public?static?void?RegisterServices(){DiContainerMocker.RegisterService<IProductService,?ProductService>(new?ProductService());DiContainerMocker.RegisterService<IOrderService,?OrderService>(new?OrderService());}} }

這正是我們想要的。

很棒的事情是,如果在某個Sevice上刪除或添加了AutoRegister Attribute,您將看到生成的代碼將立即更新,無需重新編譯項目!

如何調試 Source Generators

有時,我們需要調試Source Generators。如果僅在Source Generator中設置一個斷點,您將發現它將無法工作。解決方案是在Initialize方法中附加調試器:

????????public?void?Initialize(GeneratorInitializationContext?context){ #if?DEBUGif?(!Debugger.IsAttached){Debugger.Launch();} #endifcontext.RegisterForSyntaxNotifications(()?=>?new?MySyntaxReceiver());}

然后,您可以通過設置斷點來調試Source Generator。

如何處理復雜的模板代碼?

在這兩個示例中,我演示了如何使用Source Generators生成代碼。我們在Execute方法中使用了原始字符串——看起來很丑。更好的方法是使用模板引擎。一種可能的選擇是Scriban[36]——一種用于.NET的快速,強大,安全和輕量級的腳本語言和引擎。因此,我們可以將模板存儲在單獨的文件中,這樣項目會比較整潔。我不會深入探討模板語法,因為它不在本文討論范圍之內。您可以在其GitHub存儲庫中找到更多信息。

使用場景

Microsoft提供了一個Source Generators cookbook。您可以在GitHub上找到它:https://github.com/dotnet/roslyn/blob/master/docs/features/source-generators.cookbook.md。您將看到Source Generators可以在許多情況下應用,尤其是替換Reflection或開發樣板代碼時。例如,某些JSON序列化經常使用動態分析,例如使用Reflection在運行時檢查類型。源代碼生成器可以在編譯時生成靜態序列化代碼,以節省成本。您還可以訪問其他文件(例如XML或JSON文件)來生成代碼。

在GitHub上查找更多示例:https://github.com/dotnet/roslyn-sdk/tree/master/samples/CSharp/SourceGenerators。

小結

在本文中,我向您介紹了可用于在C#程序中生成代碼的四種方式。它們可能適合不同的場景,因此我們需要比較每種方法并選擇適當的方式。


場景優點缺點
Code Snippets以特定格式創建代碼塊,例如屬性,方法和類等。節省鍵入重復代碼塊的時間。僅適用于特定格式。無法自動更新。
Reflection在運行時獲取元數據,然后與類,屬性,方法等進行交互。在許多情況下功能強大且靈活。可以減少耦合。昂貴的成本。潛在的性能問題。維護更復雜。
T4 Template用于生成一些樣板代碼。但是有時可以通過設計模式對其進行重構。可以從其他文件讀取數據。許多可用的控制塊。可以生成靜態代碼而不會出現性能問題。糟糕的編輯器支持。容易在模板中犯錯誤。
Source Generators可用于替換一些Reflection代碼。在基于Roslyn的編譯中生成靜態代碼。沒有性能問題。編譯速度更快。支持智能感知。無法生成源代碼時可以產生診斷信息。支持Partial Class或Partial Method。工具需要改進。有點難以上手。

本文的重點是如何使用Source Generators-.NET 5中提供的新功能。它仍處于預覽狀態,因此我們可能很快會看到Microsoft的更多改進。我的期望是與VS2019更好地集成。現在的體驗還不夠好,因為我們必須反復重新打開VS。希望本文能幫助您節省C#開發的時間。如果您有任何想法,請隨時發表您的評論。謝謝。

參考資料

[1]

C# Code Snippets: https://docs.microsoft.com/en-us/visualstudio/ide/visual-csharp-code-snippets?view=vs-2019&WT.mc_id=DT-MVP-5001643

[2]

INotifyPropertyChanged: https://docs.microsoft.com/en-us/dotnet/api/system.componentmodel.inotifypropertychanged?WT.mc_id=DT-MVP-5001643

[3]

Walkthrough: Create a code snippet: https://docs.microsoft.com/en-us/visualstudio/ide/walkthrough-creating-a-code-snippet?view=vs-2019&WT.mc_id=DT-MVP-5001643

[4]

Code snippet functions: https://docs.microsoft.com/en-us/visualstudio/ide/code-snippet-functions?view=vs-2019&WT.mc_id=DT-MVP-5001643

[5]

How to: Distribute code snippets: https://docs.microsoft.com/en-us/visualstudio/ide/how-to-distribute-code-snippets?view=vs-2019&WT.mc_id=DT-MVP-5001643

[6]

ASP.NET Core: https://docs.microsoft.com/en-us/aspnet/core/?view=aspnetcore-5.0&WT.mc_id=DT-MVP-5001643

[7]

Entity Framework Core: https://docs.microsoft.com/en-us/ef/core/?WT.mc_id=DT-MVP-5001643

[8]

類型的: https://docs.microsoft.com/en-us/dotnet/api/system.type?WT.mc_id=DT-MVP-5001643

[9]

System.Reflection: https://docs.microsoft.com/en-us/dotnet/api/system.reflection?WT.mc_id=DT-MVP-5001643

[10]

System.Type: https://docs.microsoft.com/en-us/dotnet/api/system.type?WT.mc_id=DT-MVP-5001643

[11]

Assembly: https://docs.microsoft.com/en-us/dotnet/api/system.reflection.assembly?WT.mc_id=DT-MVP-5001643

[12]

Module: https://docs.microsoft.com/en-us/dotnet/api/system.reflection.module?WT.mc_id=DT-MVP-5001643

[13]

ConstructorInfo: https://docs.microsoft.com/en-us/dotnet/api/system.reflection.constructorinfo?WT.mc_id=DT-MVP-5001643

[14]

MethodInfo: https://docs.microsoft.com/en-us/dotnet/api/system.reflection.methodinfo?WT.mc_id=DT-MVP-5001643

[15]

FieldInfo: https://docs.microsoft.com/en-us/dotnet/api/system.reflection.fieldinfo?WT.mc_id=DT-MVP-5001643

[16]

EventInfo: https://docs.microsoft.com/en-us/dotnet/api/system.reflection.eventinfo?WT.mc_id=DT-MVP-5001643

[17]

PropertyInfo: https://docs.microsoft.com/en-us/dotnet/api/system.reflection.propertyinfo?WT.mc_id=DT-MVP-5001643

[18]

ParameterInfo: https://docs.microsoft.com/en-us/dotnet/api/system.reflection.parameterinfo?WT.mc_id=DT-MVP-5001643

[19]

CustomAttributeData: https://docs.microsoft.com/en-us/dotnet/api/system.reflection.customattributedata?WT.mc_id=DT-MVP-5001643

[20]

Reflection in .NET: https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/reflection?WT.mc_id=DT-MVP-5001643

[21]

Viewing Type Information: https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/viewing-type-information?WT.mc_id=DT-MVP-5001643

[22]

Dynamically Loading and Using Types: https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/dynamically-loading-and-using-types?WT.mc_id=DT-MVP-5001643

[23]

DevArt T4 Editor: https://www.devart.com/t4-editor/

[24]

Code Generation and T4 Text Templates: https://docs.microsoft.com/en-us/visualstudio/modeling/code-generation-and-t4-text-templates?view=vs-2019&WT.mc_id=DT-MVP-5001643

[25]

Walkthrough: Generate Code by using Text Templates: https://docs.microsoft.com/en-us/visualstudio/modeling/walkthrough-generating-code-by-using-text-templates?view=vs-2019&WT.mc_id=DT-MVP-5001643

[26]

Run-Time Text Generation with T4 Text Templates: https://docs.microsoft.com/en-us/visualstudio/modeling/run-time-text-generation-with-t4-text-templates?view=vs-2019&WT.mc_id=DT-MVP-5001643

[27]

T4 Text Template Directives: https://docs.microsoft.com/en-us/visualstudio/modeling/t4-text-template-directives?view=vs-2019&WT.mc_id=DT-MVP-5001643

[28]

Text Template Control Blocks: https://docs.microsoft.com/en-us/visualstudio/modeling/text-template-control-blocks?view=vs-2019&WT.mc_id=DT-MVP-5001643

[29]

Guidelines for Writing T4 Text Templates: https://docs.microsoft.com/en-us/visualstudio/modeling/guidelines-for-writing-t4-text-templates?view=vs-2019&WT.mc_id=DT-MVP-5001643

[30]

.NET 5 SDK: https://dotnet.microsoft.com/download/dotnet/5.0

[31]

Attribute: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/?WT.mc_id=DT-MVP-5001643

[32]

Roslyn: https://docs.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/?WT.mc_id=DT-MVP-5001643

[33]

Work with syntax: https://docs.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/work-with-syntax?WT.mc_id=DT-MVP-5001643

[34]

Work with semantics: https://docs.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/work-with-semantics?WT.mc_id=DT-MVP-5001643

[35]

Explore code with the Roslyn syntax visualizer in Visual Studio: https://docs.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/syntax-visualizer?tabs=csharp&WT.mc_id=DT-MVP-5001643

[36]

Scriban: https://github.com/scriban/scriban

總結

以上是生活随笔為你收集整理的在 C# 中生成代码的四种方式——包括.NET 5中的Source Generators的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

午夜精品久久久内射近拍高清 | 亚洲人成人无码网www国产 | 成人亚洲精品久久久久 | 丰满人妻翻云覆雨呻吟视频 | 99久久99久久免费精品蜜桃 | 婷婷五月综合激情中文字幕 | 欧美激情综合亚洲一二区 | 西西人体www44rt大胆高清 | 欧洲熟妇精品视频 | 久久亚洲中文字幕精品一区 | 无码精品人妻一区二区三区av | 中文字幕亚洲情99在线 | 全球成人中文在线 | 国产又爽又猛又粗的视频a片 | 亚洲一区二区三区四区 | 狠狠色噜噜狠狠狠7777奇米 | 国产亚洲精品久久久久久大师 | 国产高潮视频在线观看 | 婷婷色婷婷开心五月四房播播 | 日韩欧美成人免费观看 | 丝袜 中出 制服 人妻 美腿 | 少妇性l交大片 | 狂野欧美激情性xxxx | 国产成人综合在线女婷五月99播放 | 精品人妻人人做人人爽夜夜爽 | 亚洲精品www久久久 | 精品欧洲av无码一区二区三区 | 国产成人无码av在线影院 | 成熟妇人a片免费看网站 | 国产无遮挡又黄又爽又色 | 少妇一晚三次一区二区三区 | 内射老妇bbwx0c0ck | 久久久久久国产精品无码下载 | 中文字幕无码免费久久9一区9 | 成人欧美一区二区三区黑人免费 | 正在播放老肥熟妇露脸 | 亲嘴扒胸摸屁股激烈网站 | a在线观看免费网站大全 | 日本护士毛茸茸高潮 | 在线成人www免费观看视频 | 国产精品久久久久7777 | 精品久久久无码人妻字幂 | 国产成人无码区免费内射一片色欲 | 丁香花在线影院观看在线播放 | 漂亮人妻洗澡被公强 日日躁 | 久久久久免费精品国产 | 国产莉萝无码av在线播放 | 无码人妻av免费一区二区三区 | 一本久道久久综合婷婷五月 | 国产另类ts人妖一区二区 | 亚洲成a人片在线观看无码 | 亚洲欧洲无卡二区视頻 | 精品国偷自产在线 | 国产精品久久久久久亚洲影视内衣 | 国产亚洲精品久久久久久 | 欧美猛少妇色xxxxx | 性做久久久久久久久 | 日本精品少妇一区二区三区 | 野外少妇愉情中文字幕 | 国产无遮挡又黄又爽免费视频 | 77777熟女视频在线观看 а天堂中文在线官网 | 国产无av码在线观看 | 亚洲色大成网站www国产 | 一本久道久久综合婷婷五月 | 久久综合色之久久综合 | 精品国产一区av天美传媒 | 亚洲国产综合无码一区 | 国产 浪潮av性色四虎 | 人人妻人人藻人人爽欧美一区 | 亚洲日韩中文字幕在线播放 | 国产精品人人妻人人爽 | 亚洲国产精品成人久久蜜臀 | 性欧美牲交在线视频 | 欧美日韩久久久精品a片 | 曰本女人与公拘交酡免费视频 | 亚洲七七久久桃花影院 | 日韩精品无码免费一区二区三区 | 奇米影视7777久久精品人人爽 | 亚洲啪av永久无码精品放毛片 | 日本精品人妻无码77777 天堂一区人妻无码 | 婷婷五月综合缴情在线视频 | 国产真实夫妇视频 | 久久综合网欧美色妞网 | 色五月丁香五月综合五月 | 男女猛烈xx00免费视频试看 | 精品国产成人一区二区三区 | 日日摸日日碰夜夜爽av | 日欧一片内射va在线影院 | 亚洲中文字幕av在天堂 | 亚洲精品成人av在线 | 亚洲 a v无 码免 费 成 人 a v | 国产精品福利视频导航 | 国产成人精品视频ⅴa片软件竹菊 | 日本饥渴人妻欲求不满 | 国产后入清纯学生妹 | 大乳丰满人妻中文字幕日本 | 人妻尝试又大又粗久久 | 精品久久久中文字幕人妻 | 麻豆av传媒蜜桃天美传媒 | 97se亚洲精品一区 | 国产suv精品一区二区五 | 高潮喷水的毛片 | 国内精品人妻无码久久久影院 | 精品无人国产偷自产在线 | 国产精品成人av在线观看 | 欧美阿v高清资源不卡在线播放 | 又湿又紧又大又爽a视频国产 | 18精品久久久无码午夜福利 | 无码人妻av免费一区二区三区 | 99riav国产精品视频 | 亚洲国产欧美国产综合一区 | 国产精品手机免费 | 爱做久久久久久 | 国产九九九九九九九a片 | 成人无码视频在线观看网站 | √天堂中文官网8在线 | 亚洲欧洲日本无在线码 | 亚洲欧美日韩综合久久久 | 大乳丰满人妻中文字幕日本 | 午夜嘿嘿嘿影院 | 极品嫩模高潮叫床 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 亚洲一区二区三区含羞草 | 曰韩少妇内射免费播放 | 无码人妻av免费一区二区三区 | 国产香蕉97碰碰久久人人 | 玩弄人妻少妇500系列视频 | 最新版天堂资源中文官网 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 日本一区二区三区免费播放 | 亚洲国产欧美在线成人 | 亚洲日韩av一区二区三区四区 | 亚洲精品一区二区三区在线 | 精品国精品国产自在久国产87 | av人摸人人人澡人人超碰下载 | 日本精品久久久久中文字幕 | 国产亚洲日韩欧美另类第八页 | 天天摸天天碰天天添 | 四虎永久在线精品免费网址 | 亚洲精品一区二区三区在线 | 鲁鲁鲁爽爽爽在线视频观看 | 国产麻豆精品一区二区三区v视界 | 国产精品久久久久久久影院 | 亚洲成色www久久网站 | 国产成人av免费观看 | 丰满人妻一区二区三区免费视频 | 国产凸凹视频一区二区 | 中文字幕乱码中文乱码51精品 | 国产亚洲视频中文字幕97精品 | 日本免费一区二区三区最新 | 久久久中文字幕日本无吗 | 日日天干夜夜狠狠爱 | 久久人人爽人人人人片 | 一区二区传媒有限公司 | 在线观看国产午夜福利片 | 麻豆av传媒蜜桃天美传媒 | 无码成人精品区在线观看 | 欧美黑人乱大交 | 精品久久久久久亚洲精品 | 国产精品二区一区二区aⅴ污介绍 | 少妇性荡欲午夜性开放视频剧场 | 性做久久久久久久免费看 | 婷婷综合久久中文字幕蜜桃三电影 | 国产三级久久久精品麻豆三级 | 欧美 亚洲 国产 另类 | 377p欧洲日本亚洲大胆 | 亚洲国产精品一区二区美利坚 | 麻豆国产丝袜白领秘书在线观看 | 久久人人97超碰a片精品 | 亚洲国产精品毛片av不卡在线 | 国产精品久久久久久亚洲影视内衣 | 成人精品天堂一区二区三区 | 精品一区二区三区波多野结衣 | 精品国偷自产在线 | 国产麻豆精品一区二区三区v视界 | 日韩在线不卡免费视频一区 | 日产精品99久久久久久 | 国产精品无码一区二区三区不卡 | 黑人粗大猛烈进出高潮视频 | 丰满人妻被黑人猛烈进入 | 免费人成在线观看网站 | 中文字幕无码热在线视频 | 国产精品99久久精品爆乳 | 未满小14洗澡无码视频网站 | 奇米影视7777久久精品 | 妺妺窝人体色www婷婷 | 日本精品人妻无码免费大全 | 国产成人精品无码播放 | 97se亚洲精品一区 | 国产女主播喷水视频在线观看 | 日日碰狠狠丁香久燥 | 人妻体内射精一区二区三四 | 亚洲精品美女久久久久久久 | 精品久久久无码人妻字幂 | 日韩av激情在线观看 | 18无码粉嫩小泬无套在线观看 | 丰满人妻一区二区三区免费视频 | 色婷婷综合激情综在线播放 | 国产精品自产拍在线观看 | 亚洲熟妇色xxxxx欧美老妇y | 亚洲国产精品无码久久久久高潮 | 久久综合色之久久综合 | 天天av天天av天天透 | √天堂资源地址中文在线 | 精品国产精品久久一区免费式 | 久激情内射婷内射蜜桃人妖 | 亚洲一区二区三区四区 | 亚洲一区二区三区四区 | 亚洲国产精品无码一区二区三区 | 无码人妻出轨黑人中文字幕 | 鲁一鲁av2019在线 | 中文字幕人妻丝袜二区 | 国产精品亚洲а∨无码播放麻豆 | 少妇邻居内射在线 | 日韩少妇白浆无码系列 | 精品欧美一区二区三区久久久 | 粗大的内捧猛烈进出视频 | 亚洲精品一区二区三区在线 | 在线成人www免费观看视频 | 国语精品一区二区三区 | 未满小14洗澡无码视频网站 | 俺去俺来也www色官网 | 高潮毛片无遮挡高清免费 | 日本精品久久久久中文字幕 | 高清无码午夜福利视频 | 亚洲综合无码一区二区三区 | 好屌草这里只有精品 | 亚洲色成人中文字幕网站 | 久久综合九色综合欧美狠狠 | 久久精品女人天堂av免费观看 | 国产精品无码一区二区三区不卡 | 欧洲vodafone精品性 | 99久久婷婷国产综合精品青草免费 | 少妇厨房愉情理9仑片视频 | 在线成人www免费观看视频 | 51国偷自产一区二区三区 | 成年美女黄网站色大免费全看 | 精品欧洲av无码一区二区三区 | 高中生自慰www网站 | 久久综合香蕉国产蜜臀av | 欧美日韩一区二区免费视频 | 国产亚洲精品久久久久久久 | 久久久久人妻一区精品色欧美 | 国产香蕉97碰碰久久人人 | 女人被男人躁得好爽免费视频 | 亚洲 激情 小说 另类 欧美 | 秋霞特色aa大片 | 日韩精品久久久肉伦网站 | 久久www免费人成人片 | 性生交大片免费看l | 亚洲欧洲日本无在线码 | 特黄特色大片免费播放器图片 | 国产va免费精品观看 | 九月婷婷人人澡人人添人人爽 | 色婷婷香蕉在线一区二区 | 无码国产色欲xxxxx视频 | 国产亚洲日韩欧美另类第八页 | 高中生自慰www网站 | 精品国产av色一区二区深夜久久 | 国产va免费精品观看 | 成熟妇人a片免费看网站 | 午夜性刺激在线视频免费 | 内射老妇bbwx0c0ck | 久久精品国产一区二区三区肥胖 | 亚洲精品成人福利网站 | 激情综合激情五月俺也去 | 国产精品高潮呻吟av久久 | 天堂а√在线中文在线 | 人人妻人人澡人人爽人人精品浪潮 | 少妇一晚三次一区二区三区 | 色婷婷香蕉在线一区二区 | 国产偷国产偷精品高清尤物 | 成人试看120秒体验区 | 四虎影视成人永久免费观看视频 | 在线视频网站www色 | 欧美日本免费一区二区三区 | 99视频精品全部免费免费观看 | 中文字幕无线码 | 牛和人交xxxx欧美 | 无码成人精品区在线观看 | www国产亚洲精品久久网站 | 少妇无套内谢久久久久 | 99麻豆久久久国产精品免费 | 性色av无码免费一区二区三区 | 精品少妇爆乳无码av无码专区 | 国产成人精品久久亚洲高清不卡 | 亚洲国产日韩a在线播放 | 婷婷五月综合缴情在线视频 | 午夜福利不卡在线视频 | 成人免费视频一区二区 | 成人女人看片免费视频放人 | 99久久亚洲精品无码毛片 | 日韩在线不卡免费视频一区 | 精品国产国产综合精品 | 国产精品第一国产精品 | 国产偷自视频区视频 | 日日躁夜夜躁狠狠躁 | 真人与拘做受免费视频 | 国产在线一区二区三区四区五区 | 蜜桃无码一区二区三区 | 国产色视频一区二区三区 | 欧美野外疯狂做受xxxx高潮 | 久久www免费人成人片 | a国产一区二区免费入口 | 色综合久久久久综合一本到桃花网 | 成人无码视频免费播放 | 国产精品怡红院永久免费 | 中文字幕人妻无码一夲道 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 国产亚洲精品久久久久久 | 国产精品高潮呻吟av久久 | 初尝人妻少妇中文字幕 | 精品久久久久久人妻无码中文字幕 | 蜜臀av无码人妻精品 | 亚拍精品一区二区三区探花 | 欧美野外疯狂做受xxxx高潮 | 亚洲国产欧美在线成人 | av人摸人人人澡人人超碰下载 | 又大又黄又粗又爽的免费视频 | 中文毛片无遮挡高清免费 | 国产成人一区二区三区别 | 久久久久成人精品免费播放动漫 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国模大胆一区二区三区 | 久久综合给久久狠狠97色 | 大肉大捧一进一出视频出来呀 | 国产成人av免费观看 | 狂野欧美激情性xxxx | 欧美 日韩 亚洲 在线 | 福利一区二区三区视频在线观看 | 免费国产成人高清在线观看网站 | 国内揄拍国内精品少妇国语 | 99久久人妻精品免费二区 | 少妇被粗大的猛进出69影院 | 欧美一区二区三区视频在线观看 | 亚洲精品欧美二区三区中文字幕 | 狂野欧美性猛xxxx乱大交 | 三级4级全黄60分钟 | 四虎永久在线精品免费网址 | 国产色在线 | 国产 | 国产精品久久久久无码av色戒 | 欧美怡红院免费全部视频 | 国产亚洲精品久久久久久久 | 亚洲精品一区二区三区大桥未久 | 玩弄人妻少妇500系列视频 | 日本乱偷人妻中文字幕 | 亚洲欧美精品伊人久久 | 俺去俺来也www色官网 | 一区二区三区高清视频一 | 欧美性色19p | 人人妻人人澡人人爽欧美一区九九 | 欧美三级a做爰在线观看 | 日本精品人妻无码免费大全 | 久久视频在线观看精品 | 国产亚洲精品久久久ai换 | 性色av无码免费一区二区三区 | 偷窥日本少妇撒尿chinese | 少妇性俱乐部纵欲狂欢电影 | 国产精品高潮呻吟av久久4虎 | 国产精品va在线观看无码 | 色欲人妻aaaaaaa无码 | 骚片av蜜桃精品一区 | 少妇的肉体aa片免费 | 少女韩国电视剧在线观看完整 | 亚洲综合无码一区二区三区 | 东北女人啪啪对白 | 牲欲强的熟妇农村老妇女 | 爱做久久久久久 | 精品一区二区三区无码免费视频 | 欧美成人免费全部网站 | 丝袜美腿亚洲一区二区 | 性欧美熟妇videofreesex | 麻豆果冻传媒2021精品传媒一区下载 | 伊人久久大香线蕉av一区二区 | 亚洲中文字幕成人无码 | 亚洲国精产品一二二线 | 好男人www社区 | 精品成在人线av无码免费看 | 牛和人交xxxx欧美 | 国产超级va在线观看视频 | 女人被男人爽到呻吟的视频 | 未满成年国产在线观看 | 国产精品无码一区二区桃花视频 | 特黄特色大片免费播放器图片 | а√天堂www在线天堂小说 | 欧美三级不卡在线观看 | 99久久婷婷国产综合精品青草免费 | 老头边吃奶边弄进去呻吟 | www国产亚洲精品久久久日本 | 国产精品久久久av久久久 | 女人和拘做爰正片视频 | 精品国产aⅴ无码一区二区 | 又粗又大又硬又长又爽 | 久精品国产欧美亚洲色aⅴ大片 | 亚洲中文字幕无码一久久区 | 精品国产一区二区三区四区在线看 | 日本又色又爽又黄的a片18禁 | 九九在线中文字幕无码 | 一本大道伊人av久久综合 | 成人亚洲精品久久久久软件 | 日本一区二区更新不卡 | 欧美xxxx黑人又粗又长 | 国产人成高清在线视频99最全资源 | 夜夜影院未满十八勿进 | 成年美女黄网站色大免费全看 | 美女扒开屁股让男人桶 | 爽爽影院免费观看 | 伦伦影院午夜理论片 | 两性色午夜免费视频 | 国产成人精品必看 | 少妇性荡欲午夜性开放视频剧场 | 精品一区二区不卡无码av | 中文久久乱码一区二区 | 无码任你躁久久久久久久 | 奇米影视7777久久精品 | 日日天日日夜日日摸 | 波多野结衣乳巨码无在线观看 | 欧美日韩综合一区二区三区 | 国产97色在线 | 免 | 青春草在线视频免费观看 | 久久综合香蕉国产蜜臀av | 狠狠色丁香久久婷婷综合五月 | 国产内射爽爽大片视频社区在线 | 女人和拘做爰正片视频 | 久久午夜无码鲁丝片秋霞 | 少妇人妻偷人精品无码视频 | 日本精品少妇一区二区三区 | 大肉大捧一进一出好爽视频 | 日日摸日日碰夜夜爽av | 欧洲熟妇精品视频 | 成人无码精品1区2区3区免费看 | 国产午夜无码精品免费看 | 天下第一社区视频www日本 | 国产乱人伦偷精品视频 | 免费国产黄网站在线观看 | 日韩av激情在线观看 | 国产美女精品一区二区三区 | 青青草原综合久久大伊人精品 | 丰满人妻精品国产99aⅴ | 狠狠色欧美亚洲狠狠色www | 97精品人妻一区二区三区香蕉 | 久久人人爽人人爽人人片ⅴ | 大胆欧美熟妇xx | 三级4级全黄60分钟 | 国产欧美精品一区二区三区 | 最新国产乱人伦偷精品免费网站 | 亚洲精品无码人妻无码 | 久久精品人人做人人综合 | 亚洲日韩av一区二区三区四区 | 国产精品久久福利网站 | 国产99久久精品一区二区 | 欧美三级不卡在线观看 | 国产在线一区二区三区四区五区 | 香港三级日本三级妇三级 | 好男人www社区 | 99久久久无码国产aaa精品 | 波多野结衣乳巨码无在线观看 | a片免费视频在线观看 | 久久亚洲中文字幕无码 | 国产无套粉嫩白浆在线 | 无码吃奶揉捏奶头高潮视频 | 女人高潮内射99精品 | 沈阳熟女露脸对白视频 | 亚洲精品成a人在线观看 | 国产精品99爱免费视频 | 国产av剧情md精品麻豆 | 亚洲欧美综合区丁香五月小说 | 99精品视频在线观看免费 | 久久国产精品二国产精品 | 久久人人爽人人人人片 | 一本久久伊人热热精品中文字幕 | 高清国产亚洲精品自在久久 | 亚洲日本va午夜在线电影 | 精品偷自拍另类在线观看 | 人妻中文无码久热丝袜 | 2020久久香蕉国产线看观看 | 欧美自拍另类欧美综合图片区 | 国产人妻人伦精品1国产丝袜 | 国产性生交xxxxx无码 | 国产精品内射视频免费 | 人妻人人添人妻人人爱 | 六十路熟妇乱子伦 | 亚洲国产精品成人久久蜜臀 | 成人欧美一区二区三区黑人免费 | 51国偷自产一区二区三区 | av人摸人人人澡人人超碰下载 | 人人妻人人澡人人爽欧美精品 | 国产精品亚洲а∨无码播放麻豆 | 精品人妻av区 | 国产午夜亚洲精品不卡下载 | 久久精品女人天堂av免费观看 | 成人一区二区免费视频 | 丰满岳乱妇在线观看中字无码 | 国产黄在线观看免费观看不卡 | 青青青手机频在线观看 | 荫蒂添的好舒服视频囗交 | 三级4级全黄60分钟 | 日韩av无码一区二区三区不卡 | 97精品国产97久久久久久免费 | 久久午夜夜伦鲁鲁片无码免费 | 人人妻人人藻人人爽欧美一区 | 一本久久伊人热热精品中文字幕 | 98国产精品综合一区二区三区 | av无码不卡在线观看免费 | 在线播放免费人成毛片乱码 | 兔费看少妇性l交大片免费 | 国产精品免费大片 | 久久久久久久人妻无码中文字幕爆 | 无码免费一区二区三区 | 婷婷色婷婷开心五月四房播播 | 无码人妻少妇伦在线电影 | 亚洲狠狠婷婷综合久久 | 丰满少妇弄高潮了www | 狠狠色噜噜狠狠狠狠7777米奇 | 国产香蕉尹人视频在线 | 欧美亚洲日韩国产人成在线播放 | 强开小婷嫩苞又嫩又紧视频 | 无码福利日韩神码福利片 | 美女毛片一区二区三区四区 | 亚洲の无码国产の无码步美 | 高清国产亚洲精品自在久久 | 欧美黑人性暴力猛交喷水 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 精品国产成人一区二区三区 | 呦交小u女精品视频 | 国产九九九九九九九a片 | 亚洲精品国产第一综合99久久 | 精品久久久久香蕉网 | 久久综合九色综合欧美狠狠 | 国产av无码专区亚洲a∨毛片 | 丝袜美腿亚洲一区二区 | 国产精品嫩草久久久久 | 天堂亚洲2017在线观看 | 国产精品二区一区二区aⅴ污介绍 | 六十路熟妇乱子伦 | 熟妇激情内射com | 大地资源中文第3页 | 综合网日日天干夜夜久久 | 又大又紧又粉嫩18p少妇 | 人人妻人人澡人人爽欧美一区 | 成熟人妻av无码专区 | 清纯唯美经典一区二区 | 亚洲日本一区二区三区在线 | 久久久久久国产精品无码下载 | 丰满人妻翻云覆雨呻吟视频 | 国产av无码专区亚洲awww | 亚洲色偷偷男人的天堂 | 亚洲最大成人网站 | 久久97精品久久久久久久不卡 | 国精产品一品二品国精品69xx | 国产激情无码一区二区 | 亚洲国产成人av在线观看 | 97无码免费人妻超级碰碰夜夜 | 高清不卡一区二区三区 | 国产sm调教视频在线观看 | 亚洲性无码av中文字幕 | 最新国产乱人伦偷精品免费网站 | 亚洲伊人久久精品影院 | 领导边摸边吃奶边做爽在线观看 | 熟妇人妻无码xxx视频 | 亚洲精品国产精品乱码不卡 | 伊人久久大香线蕉亚洲 | 亚洲大尺度无码无码专区 | 人人妻人人澡人人爽人人精品浪潮 | 精品国偷自产在线 | 丰满少妇高潮惨叫视频 | 日日天日日夜日日摸 | 免费观看的无遮挡av | 成人精品天堂一区二区三区 | 国产精品对白交换视频 | 精品亚洲成av人在线观看 | 国产亚洲欧美日韩亚洲中文色 | 国产精品va在线观看无码 | 在线天堂新版最新版在线8 | 亚洲成av人在线观看网址 | 亚洲成av人影院在线观看 | 久久久中文久久久无码 | 国产精品毛多多水多 | 色老头在线一区二区三区 | 97久久国产亚洲精品超碰热 | a在线观看免费网站大全 | 国产精品无码永久免费888 | 色综合久久久无码网中文 | 日韩av无码一区二区三区不卡 | 免费视频欧美无人区码 | 国产亚洲人成a在线v网站 | 小泽玛莉亚一区二区视频在线 | 欧美精品免费观看二区 | 亲嘴扒胸摸屁股激烈网站 | 荡女精品导航 | 亚洲成熟女人毛毛耸耸多 | 欧美日韩精品 | 亚洲综合在线一区二区三区 | 亚洲国产精品毛片av不卡在线 | 国产人妻人伦精品1国产丝袜 | 国产精品毛多多水多 | 国产一区二区三区四区五区加勒比 | www国产亚洲精品久久久日本 | 欧美日韩久久久精品a片 | 国产精品久久久久久亚洲影视内衣 | 久久午夜无码鲁丝片 | 领导边摸边吃奶边做爽在线观看 | av无码电影一区二区三区 | 黑人巨大精品欧美一区二区 | 伊人久久大香线焦av综合影院 | 欧美 日韩 人妻 高清 中文 | 亚洲一区av无码专区在线观看 | 久久97精品久久久久久久不卡 | 狠狠cao日日穞夜夜穞av | 天天摸天天碰天天添 | 1000部夫妻午夜免费 | 久久99精品国产.久久久久 | 午夜熟女插插xx免费视频 | 久热国产vs视频在线观看 | 精品国产精品久久一区免费式 | 丰满少妇弄高潮了www | 99久久久无码国产精品免费 | 欧美喷潮久久久xxxxx | 久激情内射婷内射蜜桃人妖 | 丝袜 中出 制服 人妻 美腿 | 精品一区二区三区波多野结衣 | 精品无码成人片一区二区98 | 婷婷色婷婷开心五月四房播播 | 牲交欧美兽交欧美 | 永久免费观看美女裸体的网站 | 88国产精品欧美一区二区三区 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 一本无码人妻在中文字幕免费 | 欧美freesex黑人又粗又大 | 天天躁夜夜躁狠狠是什么心态 | 国产97人人超碰caoprom | 久久综合给久久狠狠97色 | 天天燥日日燥 | 国产免费久久精品国产传媒 | 国产一区二区三区日韩精品 | 婷婷五月综合缴情在线视频 | 少妇人妻偷人精品无码视频 | 国精产品一区二区三区 | 久久午夜夜伦鲁鲁片无码免费 | 老太婆性杂交欧美肥老太 | 性色欲网站人妻丰满中文久久不卡 | 色综合视频一区二区三区 | 婷婷色婷婷开心五月四房播播 | 日本精品高清一区二区 | 波多野结衣一区二区三区av免费 | 久久国产精品精品国产色婷婷 | 国产精品无码mv在线观看 | 婷婷六月久久综合丁香 | 国产成人无码av片在线观看不卡 | 色综合久久中文娱乐网 | 亚洲区欧美区综合区自拍区 | 成人无码精品1区2区3区免费看 | 精品乱码久久久久久久 | 国精品人妻无码一区二区三区蜜柚 | 色综合久久久无码中文字幕 | 亚洲精品中文字幕 | 亚洲国产欧美日韩精品一区二区三区 | 欧美日韩色另类综合 | 国产无套粉嫩白浆在线 | 国色天香社区在线视频 | 亚洲中文字幕乱码av波多ji | 天下第一社区视频www日本 | 亚洲综合精品香蕉久久网 | 四虎国产精品免费久久 | 成人无码视频免费播放 | 波多野42部无码喷潮在线 | 日日噜噜噜噜夜夜爽亚洲精品 | 伊人色综合久久天天小片 | 老子影院午夜精品无码 | aⅴ亚洲 日韩 色 图网站 播放 | 国产精品亚洲а∨无码播放麻豆 | 熟妇人妻中文av无码 | 国产精品福利视频导航 | 高清不卡一区二区三区 | 国产在线无码精品电影网 | 玩弄少妇高潮ⅹxxxyw | 乱码午夜-极国产极内射 | 精品国产国产综合精品 | 激情国产av做激情国产爱 | 欧美放荡的少妇 | 天天燥日日燥 | 亚洲中文字幕在线观看 | 久久精品女人的天堂av | 999久久久国产精品消防器材 | 国产人妻人伦精品 | 人妻天天爽夜夜爽一区二区 | 妺妺窝人体色www在线小说 | 极品尤物被啪到呻吟喷水 | 无码国产激情在线观看 | 欧美老熟妇乱xxxxx | 成人免费无码大片a毛片 | 精品偷拍一区二区三区在线看 | aⅴ在线视频男人的天堂 | 伊人久久大香线蕉亚洲 | 熟妇女人妻丰满少妇中文字幕 | 人人妻人人澡人人爽欧美精品 | 久青草影院在线观看国产 | 丁香啪啪综合成人亚洲 | 国产人成高清在线视频99最全资源 | 国产香蕉97碰碰久久人人 | 国产内射爽爽大片视频社区在线 | 亚洲熟妇色xxxxx亚洲 | 免费看少妇作爱视频 | 蜜臀aⅴ国产精品久久久国产老师 | 久久99精品国产麻豆蜜芽 | 久久精品国产日本波多野结衣 | 伊人久久大香线蕉av一区二区 | 人妻与老人中文字幕 | 麻花豆传媒剧国产免费mv在线 | 无码帝国www无码专区色综合 | 少妇无码一区二区二三区 | 午夜福利不卡在线视频 | 无码av最新清无码专区吞精 | 丰满少妇熟乱xxxxx视频 | 一本久道久久综合婷婷五月 | 国产成人精品久久亚洲高清不卡 | 宝宝好涨水快流出来免费视频 | 久久www免费人成人片 | 免费男性肉肉影院 | 亚洲日韩一区二区三区 | 丰满少妇女裸体bbw | 久久久久国色av免费观看性色 | 一本精品99久久精品77 | 乱人伦中文视频在线观看 | 老头边吃奶边弄进去呻吟 | 人妻中文无码久热丝袜 | 国内少妇偷人精品视频免费 | 99久久久国产精品无码免费 | 中文字幕日产无线码一区 | 中文字幕无码热在线视频 | 97资源共享在线视频 | 亚洲国产精品久久久天堂 | 亚洲无人区午夜福利码高清完整版 | 成人精品视频一区二区 | 亚洲综合无码久久精品综合 | 精品久久久久香蕉网 | 久久精品人人做人人综合试看 | 久久久www成人免费毛片 | 久久久久亚洲精品男人的天堂 | 色 综合 欧美 亚洲 国产 | 亚洲精品鲁一鲁一区二区三区 | 又粗又大又硬又长又爽 | 亚洲精品成人福利网站 | 麻豆av传媒蜜桃天美传媒 | 国产亚洲精品久久久久久久 | 欧洲vodafone精品性 | 中文精品无码中文字幕无码专区 | 久久人人爽人人爽人人片av高清 | 久久精品人人做人人综合试看 | 亚洲自偷自拍另类第1页 | 鲁鲁鲁爽爽爽在线视频观看 | 久久精品中文字幕一区 | 一区二区三区高清视频一 | 欧美真人作爱免费视频 | 麻豆蜜桃av蜜臀av色欲av | 国产免费久久久久久无码 | 最近中文2019字幕第二页 | 亚洲中文字幕成人无码 | 初尝人妻少妇中文字幕 | 真人与拘做受免费视频 | 中文字幕色婷婷在线视频 | 最新国产麻豆aⅴ精品无码 | 夫妻免费无码v看片 | 国产av一区二区三区最新精品 | 久久精品国产99精品亚洲 | 国产精品理论片在线观看 | 暴力强奷在线播放无码 | 国产亚洲精品久久久久久 | 大胆欧美熟妇xx | 亚洲综合另类小说色区 | 欧美人与禽zoz0性伦交 | 亚洲欧洲无卡二区视頻 | 欧美日韩在线亚洲综合国产人 | 少妇被粗大的猛进出69影院 | 国产美女精品一区二区三区 | 无码免费一区二区三区 | 精品人人妻人人澡人人爽人人 | 无码av岛国片在线播放 | 牲欲强的熟妇农村老妇女 | 国产精品无码一区二区三区不卡 | 四虎永久在线精品免费网址 | 亚洲精品欧美二区三区中文字幕 | 一本久道久久综合婷婷五月 | 久久国产劲爆∧v内射 | 奇米影视7777久久精品人人爽 | 夜夜影院未满十八勿进 | 亚洲欧美色中文字幕在线 | 国产亚洲精品久久久闺蜜 | 久久久久99精品成人片 | 亚洲人成影院在线观看 | 人人妻人人澡人人爽欧美精品 | 中文字幕无码乱人伦 | 国内少妇偷人精品视频 | 欧美性色19p | 国产成人人人97超碰超爽8 | 亚洲精品综合一区二区三区在线 | 国产成人无码午夜视频在线观看 | 99久久亚洲精品无码毛片 | 伊人久久大香线蕉av一区二区 | 宝宝好涨水快流出来免费视频 | 国产精品久久久一区二区三区 | 东北女人啪啪对白 | 狠狠综合久久久久综合网 | 少妇太爽了在线观看 | 野外少妇愉情中文字幕 | 综合激情五月综合激情五月激情1 | 少妇人妻大乳在线视频 | 日韩精品乱码av一区二区 | 又粗又大又硬又长又爽 | 精品国产福利一区二区 | 狠狠cao日日穞夜夜穞av | 亚洲爆乳精品无码一区二区三区 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 久久精品丝袜高跟鞋 | 成人无码视频在线观看网站 | 亚洲人成影院在线无码按摩店 | 又大又硬又爽免费视频 | 老子影院午夜精品无码 | 精品久久8x国产免费观看 | 亚洲午夜无码久久 | 精品久久8x国产免费观看 | 性生交大片免费看女人按摩摩 | 久久精品中文闷骚内射 | 97久久超碰中文字幕 | 国产精品久久久久9999小说 | 东京一本一道一二三区 | 国产麻豆精品一区二区三区v视界 | 国产麻豆精品一区二区三区v视界 | 牲欲强的熟妇农村老妇女视频 | 大地资源网第二页免费观看 | 亚洲精品中文字幕久久久久 | 精品国偷自产在线视频 | 麻豆蜜桃av蜜臀av色欲av | 亚洲欧洲中文日韩av乱码 | 久久综合给合久久狠狠狠97色 | 秋霞特色aa大片 | 4hu四虎永久在线观看 | 丰满少妇人妻久久久久久 | 亚洲啪av永久无码精品放毛片 | 亚洲 日韩 欧美 成人 在线观看 | 久久伊人色av天堂九九小黄鸭 | 内射欧美老妇wbb | 亚洲国产精品一区二区第一页 | 在线天堂新版最新版在线8 | 国产成人综合在线女婷五月99播放 | 久久久久成人精品免费播放动漫 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 中文字幕 亚洲精品 第1页 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 一本精品99久久精品77 | 性史性农村dvd毛片 | 国产午夜无码视频在线观看 | 高潮喷水的毛片 | 内射爽无广熟女亚洲 | 一本大道久久东京热无码av | 亚洲色偷偷偷综合网 | 国产超碰人人爽人人做人人添 | 精品偷自拍另类在线观看 | 亚洲成av人综合在线观看 | 日韩精品a片一区二区三区妖精 | 女高中生第一次破苞av | 国产欧美精品一区二区三区 | 丰满人妻精品国产99aⅴ | 无码帝国www无码专区色综合 | 欧美xxxx黑人又粗又长 | 国产凸凹视频一区二区 | 国产精品无码永久免费888 | 亚洲欧美综合区丁香五月小说 | 精品国产青草久久久久福利 | 狠狠综合久久久久综合网 | 丝袜美腿亚洲一区二区 | 国产成人亚洲综合无码 | 精品一区二区三区波多野结衣 | 亚洲国产精品无码久久久久高潮 | 欧洲欧美人成视频在线 | 日本护士xxxxhd少妇 | 中文字幕无码乱人伦 | 午夜熟女插插xx免费视频 | 无码av中文字幕免费放 | 欧美国产亚洲日韩在线二区 | 亚洲欧洲日本综合aⅴ在线 | 亚洲小说春色综合另类 | 欧美性猛交内射兽交老熟妇 | 久久zyz资源站无码中文动漫 | 欧美性猛交xxxx富婆 | 水蜜桃色314在线观看 | av无码不卡在线观看免费 | 国产九九九九九九九a片 | 国产艳妇av在线观看果冻传媒 | 久久无码中文字幕免费影院蜜桃 | 老司机亚洲精品影院 | 2019nv天堂香蕉在线观看 | 亚洲精品成a人在线观看 | 久久久久久亚洲精品a片成人 | 一区二区传媒有限公司 | 国产69精品久久久久app下载 | 久久99精品久久久久久 | 亚洲精品国产a久久久久久 | 日韩av无码一区二区三区不卡 | 十八禁视频网站在线观看 | 国产香蕉97碰碰久久人人 | 成人aaa片一区国产精品 | 婷婷丁香五月天综合东京热 | 97无码免费人妻超级碰碰夜夜 | 成人精品视频一区二区 | 亚洲熟妇自偷自拍另类 | 亚洲成av人片在线观看无码不卡 | 日韩人妻系列无码专区 | 中国女人内谢69xxxx | 国产在线一区二区三区四区五区 | 国产熟妇高潮叫床视频播放 | 成人免费视频一区二区 | 免费无码午夜福利片69 | 亚洲欧美日韩国产精品一区二区 | 精品国产aⅴ无码一区二区 | 亚洲综合久久一区二区 | 久久人人爽人人爽人人片av高清 | 日韩精品无码一区二区中文字幕 | 内射后入在线观看一区 | 国产精品久久久久影院嫩草 | 强伦人妻一区二区三区视频18 | 国产人妻精品午夜福利免费 | 蜜桃臀无码内射一区二区三区 | 荡女精品导航 | 国产国产精品人在线视 | 天天躁日日躁狠狠躁免费麻豆 | 午夜时刻免费入口 | 欧美熟妇另类久久久久久不卡 | 成人女人看片免费视频放人 | 久久婷婷五月综合色国产香蕉 | 亚洲日韩av一区二区三区中文 | 成人亚洲精品久久久久 | 国产精品久久久久久久影院 | 亚洲人交乣女bbw | 狂野欧美性猛交免费视频 | 亚洲国产欧美日韩精品一区二区三区 | 久久久久久九九精品久 | 成熟妇人a片免费看网站 | 国产极品视觉盛宴 | 国产亚洲日韩欧美另类第八页 | 人妻中文无码久热丝袜 | 亚洲另类伦春色综合小说 | 岛国片人妻三上悠亚 | 日韩精品乱码av一区二区 | 少妇无码av无码专区在线观看 | 久久亚洲国产成人精品性色 | 九月婷婷人人澡人人添人人爽 | 人人妻人人澡人人爽精品欧美 | 亚洲精品国产精品乱码不卡 | 少妇厨房愉情理9仑片视频 | 欧美肥老太牲交大战 | 欧美 亚洲 国产 另类 | 亚洲欧美精品伊人久久 | 国产麻豆精品精东影业av网站 | 夜夜躁日日躁狠狠久久av | 亚洲国产精品成人久久蜜臀 | 爱做久久久久久 | 亚洲日韩av片在线观看 | 国产欧美亚洲精品a | 少妇高潮一区二区三区99 | 亚洲一区二区三区 | 人妻aⅴ无码一区二区三区 | 亚洲综合久久一区二区 | 东京热无码av男人的天堂 | 偷窥日本少妇撒尿chinese | 国产精品二区一区二区aⅴ污介绍 | 欧美熟妇另类久久久久久多毛 | 亚洲男人av天堂午夜在 | 无码人妻丰满熟妇区毛片18 | 性生交片免费无码看人 | 99视频精品全部免费免费观看 | 亚洲国产成人a精品不卡在线 | 中文字幕色婷婷在线视频 | 四虎永久在线精品免费网址 | 熟妇人妻中文av无码 | 国产乱人无码伦av在线a | 亚洲色无码一区二区三区 | 亚洲 高清 成人 动漫 | 欧美自拍另类欧美综合图片区 | 熟妇激情内射com | 黑人粗大猛烈进出高潮视频 | 波多野结衣aⅴ在线 | 丰满人妻被黑人猛烈进入 | 丰满人妻被黑人猛烈进入 | 我要看www免费看插插视频 | 日本爽爽爽爽爽爽在线观看免 | 国产午夜福利亚洲第一 | 亚洲欧美色中文字幕在线 | 色偷偷人人澡人人爽人人模 | 久久久国产精品无码免费专区 | 欧美阿v高清资源不卡在线播放 | 无码毛片视频一区二区本码 | 亚洲中文字幕无码一久久区 | 中文字幕乱码中文乱码51精品 | 精品久久久久香蕉网 | 18无码粉嫩小泬无套在线观看 | 理论片87福利理论电影 | 国产福利视频一区二区 | 亚洲人成网站在线播放942 | 亚洲国产一区二区三区在线观看 | 久久视频在线观看精品 | 国精产品一区二区三区 | 午夜熟女插插xx免费视频 | 55夜色66夜色国产精品视频 | 国产精品-区区久久久狼 | 日韩欧美群交p片內射中文 | 欧美丰满熟妇xxxx性ppx人交 | 亚洲国产精品一区二区第一页 | 天天燥日日燥 | 欧美亚洲日韩国产人成在线播放 | 欧美激情综合亚洲一二区 | 成熟妇人a片免费看网站 | 中国女人内谢69xxxx | 99久久婷婷国产综合精品青草免费 | 噜噜噜亚洲色成人网站 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 精品国偷自产在线 | 18禁止看的免费污网站 | 在线观看免费人成视频 | 97se亚洲精品一区 | 99riav国产精品视频 | 色妞www精品免费视频 | 久久综合网欧美色妞网 | 国内精品人妻无码久久久影院 | 极品尤物被啪到呻吟喷水 | 超碰97人人做人人爱少妇 | 日本va欧美va欧美va精品 | 日本一卡2卡3卡四卡精品网站 | v一区无码内射国产 | 高潮毛片无遮挡高清免费 | 亚洲国产午夜精品理论片 | 麻豆国产人妻欲求不满谁演的 | 亚洲综合无码一区二区三区 | 久久精品中文字幕大胸 | 国产精品亚洲一区二区三区喷水 | www国产亚洲精品久久久日本 | 成人影院yy111111在线观看 | 久久久精品成人免费观看 | 亚洲最大成人网站 | 亚洲 欧美 激情 小说 另类 | 国产精品久久久久久亚洲影视内衣 | 国产欧美精品一区二区三区 | 露脸叫床粗话东北少妇 | 玩弄中年熟妇正在播放 | 欧美性猛交内射兽交老熟妇 | 精品国产一区av天美传媒 | 精品一区二区三区波多野结衣 | 精品久久久久久亚洲精品 | 久久午夜夜伦鲁鲁片无码免费 | 国产在线一区二区三区四区五区 | 国产黄在线观看免费观看不卡 | 少妇无套内谢久久久久 | 国产色精品久久人妻 | 99久久精品午夜一区二区 | 国色天香社区在线视频 | 国产亚洲人成在线播放 | 国产亚洲视频中文字幕97精品 | 国产精品免费大片 | 狠狠cao日日穞夜夜穞av | 日韩av无码中文无码电影 | 久久国产36精品色熟妇 | 国产成人无码av片在线观看不卡 | 男女作爱免费网站 | 国产99久久精品一区二区 | 亚洲一区av无码专区在线观看 | 蜜桃无码一区二区三区 | 成熟人妻av无码专区 | 狠狠亚洲超碰狼人久久 | 精品无码国产自产拍在线观看蜜 | 在线播放免费人成毛片乱码 | 撕开奶罩揉吮奶头视频 | 无码国产乱人伦偷精品视频 | 日日麻批免费40分钟无码 | 夜精品a片一区二区三区无码白浆 | 久久精品一区二区三区四区 | 疯狂三人交性欧美 | 免费播放一区二区三区 | 极品嫩模高潮叫床 | 伊人久久大香线焦av综合影院 | 亚洲另类伦春色综合小说 | 丝袜人妻一区二区三区 | 精品久久8x国产免费观看 | 亚无码乱人伦一区二区 | a国产一区二区免费入口 | 中文字幕无码免费久久99 | 两性色午夜视频免费播放 | 亚洲中文无码av永久不收费 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 亚洲欧美综合区丁香五月小说 | 狂野欧美性猛交免费视频 | 国产精品va在线播放 | 国产精品内射视频免费 | 国产免费观看黄av片 | 熟女少妇在线视频播放 | 国产成人无码av片在线观看不卡 | 99精品无人区乱码1区2区3区 | 亚洲中文字幕成人无码 | 丰满护士巨好爽好大乳 | 少妇厨房愉情理9仑片视频 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 免费看男女做好爽好硬视频 | аⅴ资源天堂资源库在线 | 日本一区二区三区免费播放 | 午夜精品久久久内射近拍高清 | 精品久久久久久人妻无码中文字幕 | 伊人久久大香线蕉av一区二区 | 国产熟女一区二区三区四区五区 | 少妇高潮喷潮久久久影院 | 任你躁国产自任一区二区三区 | 无套内射视频囯产 | 色情久久久av熟女人妻网站 | 免费国产成人高清在线观看网站 | 无码毛片视频一区二区本码 | 亚洲精品成a人在线观看 | 亚洲成色在线综合网站 | 国产精品久久久久久亚洲影视内衣 | 女高中生第一次破苞av | 国产欧美精品一区二区三区 | 一个人免费观看的www视频 | 亚洲精品一区二区三区四区五区 | 中文无码伦av中文字幕 | 鲁大师影院在线观看 | 伊人久久大香线焦av综合影院 | 成人三级无码视频在线观看 | 丝袜人妻一区二区三区 | 久久精品国产日本波多野结衣 | 国产亚洲人成a在线v网站 | 综合人妻久久一区二区精品 | 精品国偷自产在线 | 性生交大片免费看女人按摩摩 | 国产精品美女久久久久av爽李琼 | 国产精品第一区揄拍无码 | 内射巨臀欧美在线视频 | 香蕉久久久久久av成人 | 中文字幕无码人妻少妇免费 | 久久亚洲日韩精品一区二区三区 | 美女极度色诱视频国产 | 国产精品怡红院永久免费 | 欧美日韩一区二区免费视频 | 色婷婷综合激情综在线播放 | 国产成人人人97超碰超爽8 | 色欲久久久天天天综合网精品 | 欧美丰满老熟妇xxxxx性 | 精品久久久久久人妻无码中文字幕 | 国产精品成人av在线观看 | 伊在人天堂亚洲香蕉精品区 | 欧美性猛交xxxx富婆 | 亚洲中文字幕乱码av波多ji | aa片在线观看视频在线播放 | 国模大胆一区二区三区 | 国産精品久久久久久久 | 天堂а√在线地址中文在线 | 天天燥日日燥 | 99久久精品无码一区二区毛片 | 亚洲日本va午夜在线电影 | 学生妹亚洲一区二区 | 亚洲色www成人永久网址 | 中文字幕久久久久人妻 | 日日噜噜噜噜夜夜爽亚洲精品 | 日本熟妇乱子伦xxxx | 色窝窝无码一区二区三区色欲 | 久久99精品国产麻豆蜜芽 | 人人澡人人妻人人爽人人蜜桃 | 国产97人人超碰caoprom | 国产内射老熟女aaaa | 欧美freesex黑人又粗又大 | 欧美大屁股xxxxhd黑色 | 欧美精品免费观看二区 | 男人和女人高潮免费网站 | 国产av人人夜夜澡人人爽麻豆 | 日日摸夜夜摸狠狠摸婷婷 | 一二三四在线观看免费视频 | 国产免费久久精品国产传媒 | 亚洲日韩av一区二区三区中文 | 亚洲日韩中文字幕在线播放 | 日韩精品成人一区二区三区 | 欧美丰满老熟妇xxxxx性 | 久久午夜无码鲁丝片 | 大色综合色综合网站 | 国产 浪潮av性色四虎 | 欧美日韩一区二区三区自拍 | 99久久久无码国产精品免费 | 国产精品久久久久9999小说 | 国产亚洲视频中文字幕97精品 | 在线а√天堂中文官网 | 无码一区二区三区在线观看 | 国产人妻久久精品二区三区老狼 | 免费无码肉片在线观看 | 色狠狠av一区二区三区 | 国产97在线 | 亚洲 | 亚洲国产精品无码久久久久高潮 | 300部国产真实乱 | 无码av免费一区二区三区试看 | 无码人妻丰满熟妇区毛片18 | 黑人大群体交免费视频 | 国产精品久久久久无码av色戒 | 国产国语老龄妇女a片 | 精品日本一区二区三区在线观看 | 伦伦影院午夜理论片 | 亚洲国产精品成人久久蜜臀 | 色欲综合久久中文字幕网 | 国产精品人妻一区二区三区四 | 亚洲国产精品毛片av不卡在线 | 亚洲男人av香蕉爽爽爽爽 | 久久人妻内射无码一区三区 | 久久久久久国产精品无码下载 | 亚洲精品www久久久 | ass日本丰满熟妇pics | 中文字幕av无码一区二区三区电影 | 国产性生大片免费观看性 | 人人妻人人澡人人爽欧美一区 | 国产精品va在线观看无码 | 中文字幕无码av波多野吉衣 | 精品无码一区二区三区爱欲 | 亚洲一区二区三区在线观看网站 | 波多野结衣 黑人 | 国产午夜亚洲精品不卡下载 | 无码av岛国片在线播放 | 激情五月综合色婷婷一区二区 | 国色天香社区在线视频 | 国产精品高潮呻吟av久久4虎 | 青青草原综合久久大伊人精品 | 亚洲狠狠色丁香婷婷综合 | 国产亚洲精品久久久久久大师 | 国产精品99久久精品爆乳 | 九九在线中文字幕无码 | 国产成人精品一区二区在线小狼 | 动漫av一区二区在线观看 | 人人妻人人澡人人爽人人精品浪潮 | 精品国产av色一区二区深夜久久 | 欧美熟妇另类久久久久久多毛 | 中文字幕久久久久人妻 | 国产精品18久久久久久麻辣 | 久久伊人色av天堂九九小黄鸭 | 亚洲の无码国产の无码影院 | 色婷婷久久一区二区三区麻豆 | 国产精品第一区揄拍无码 | 成人无码影片精品久久久 | 国精品人妻无码一区二区三区蜜柚 | 大肉大捧一进一出视频出来呀 | 免费中文字幕日韩欧美 | 国产成人无码专区 | 1000部夫妻午夜免费 | 国产熟妇另类久久久久 | 日本乱人伦片中文三区 | 亚洲综合精品香蕉久久网 | 最新国产麻豆aⅴ精品无码 | 婷婷五月综合缴情在线视频 | 天天av天天av天天透 | 国产亚av手机在线观看 | 久久久av男人的天堂 | 免费观看激色视频网站 | 欧美freesex黑人又粗又大 | 欧美35页视频在线观看 | 高潮毛片无遮挡高清免费 | 人妻与老人中文字幕 | а√天堂www在线天堂小说 | 鲁大师影院在线观看 | 久久久久久av无码免费看大片 | 少妇的肉体aa片免费 | 中文字幕乱码人妻无码久久 | 亚洲欧美日韩成人高清在线一区 | 中文字幕无码av波多野吉衣 | 国产成人一区二区三区在线观看 | 精品一二三区久久aaa片 | 日韩在线不卡免费视频一区 | 99久久精品午夜一区二区 | 日本一区二区三区免费播放 | 亚洲国产综合无码一区 | 中文字幕av无码一区二区三区电影 | 国产偷抇久久精品a片69 | 欧美黑人乱大交 | 精品熟女少妇av免费观看 | 亚洲欧美精品aaaaaa片 | 欧美丰满少妇xxxx性 | 六月丁香婷婷色狠狠久久 | 国产成人精品三级麻豆 | 强伦人妻一区二区三区视频18 | 亚洲精品国产精品乱码不卡 | 少妇的肉体aa片免费 | 欧美国产日产一区二区 | 国产黑色丝袜在线播放 | 曰韩无码二三区中文字幕 | 亚洲春色在线视频 | 无码一区二区三区在线 | 久久精品国产99精品亚洲 | 亚洲综合色区中文字幕 | 国产一区二区三区四区五区加勒比 | 欧美日韩视频无码一区二区三 | 国产精品丝袜黑色高跟鞋 | 国产精品人人妻人人爽 | 97夜夜澡人人双人人人喊 | 国产成人综合美国十次 | 国产精品高潮呻吟av久久4虎 | 少妇人妻av毛片在线看 | 成人免费无码大片a毛片 | 日韩精品久久久肉伦网站 | 亚洲午夜无码久久 | 3d动漫精品啪啪一区二区中 | 久久精品视频在线看15 | 国产精品资源一区二区 | 熟妇人妻无乱码中文字幕 | 久久久久久九九精品久 | 亚洲爆乳精品无码一区二区三区 | 精品欧洲av无码一区二区三区 | 无人区乱码一区二区三区 | 久激情内射婷内射蜜桃人妖 | 国产精品成人av在线观看 | 精品人妻av区 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 国产精品高潮呻吟av久久 | 国产真实乱对白精彩久久 | 无码人妻丰满熟妇区毛片18 | 国产欧美熟妇另类久久久 | 漂亮人妻洗澡被公强 日日躁 | 国产午夜手机精彩视频 | 日本一本二本三区免费 | 网友自拍区视频精品 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久综合狠狠综合久久综合88 | 亚洲国产精品美女久久久久 | 久久亚洲国产成人精品性色 | 色五月五月丁香亚洲综合网 | 成人精品视频一区二区三区尤物 | 国产精品久久国产三级国 | 久久婷婷五月综合色国产香蕉 | 欧洲vodafone精品性 | 无码人妻黑人中文字幕 | 97夜夜澡人人爽人人喊中国片 | 九月婷婷人人澡人人添人人爽 | 亚洲国产精品美女久久久久 | 国产精品亚洲综合色区韩国 | 青青久在线视频免费观看 | 国精品人妻无码一区二区三区蜜柚 | 久久精品女人的天堂av | 日本精品久久久久中文字幕 | 鲁一鲁av2019在线 | 日韩精品一区二区av在线 | 最近中文2019字幕第二页 | 亚洲成av人综合在线观看 | 人人澡人摸人人添 | 国产偷抇久久精品a片69 | 综合网日日天干夜夜久久 | 天堂无码人妻精品一区二区三区 | 亚洲码国产精品高潮在线 | 成人无码精品1区2区3区免费看 | 国产精品高潮呻吟av久久4虎 | 欧美人与善在线com | 激情五月综合色婷婷一区二区 | 久久精品中文字幕一区 | 久久综合九色综合欧美狠狠 | 樱花草在线社区www | 国产色视频一区二区三区 | 图片区 小说区 区 亚洲五月 | 亚洲第一网站男人都懂 | 国产精品无码mv在线观看 | 人妻天天爽夜夜爽一区二区 | 精品国产青草久久久久福利 | 日本精品高清一区二区 | 永久黄网站色视频免费直播 | 性生交片免费无码看人 | 国产va免费精品观看 | 久久人妻内射无码一区三区 | 久久久久亚洲精品男人的天堂 | 精品熟女少妇av免费观看 | 未满小14洗澡无码视频网站 | 国产精品久久国产三级国 | 日本高清一区免费中文视频 | 伊人色综合久久天天小片 | 中文字幕无码av激情不卡 | 福利一区二区三区视频在线观看 | 国产又爽又黄又刺激的视频 | 丰满少妇女裸体bbw | 免费看少妇作爱视频 | 亚洲欧美日韩成人高清在线一区 | 99久久精品日本一区二区免费 | 最新国产麻豆aⅴ精品无码 | 人妻与老人中文字幕 | 曰韩无码二三区中文字幕 | 狠狠色丁香久久婷婷综合五月 | 欧美精品一区二区精品久久 | 国产97在线 | 亚洲 | 人人爽人人爽人人片av亚洲 | 夜精品a片一区二区三区无码白浆 | 青青草原综合久久大伊人精品 | 乱人伦人妻中文字幕无码 | 日韩av无码一区二区三区不卡 | 在线视频网站www色 | 久热国产vs视频在线观看 | 午夜精品一区二区三区在线观看 | 国产麻豆精品精东影业av网站 | 久久综合网欧美色妞网 | 久久综合给久久狠狠97色 | 狂野欧美性猛交免费视频 | 97夜夜澡人人爽人人喊中国片 | 亚洲国产精品毛片av不卡在线 | 精品厕所偷拍各类美女tp嘘嘘 | а√天堂www在线天堂小说 | 正在播放老肥熟妇露脸 | 六十路熟妇乱子伦 | 99久久人妻精品免费一区 | 国产av人人夜夜澡人人爽麻豆 | 中文字幕日韩精品一区二区三区 | 亚洲人成影院在线观看 | 国产精品爱久久久久久久 | 日韩精品无码免费一区二区三区 | 精品无人国产偷自产在线 | 自拍偷自拍亚洲精品被多人伦好爽 | 又粗又大又硬毛片免费看 | 欧美激情一区二区三区成人 | 亚洲精品国产a久久久久久 | 国产精品办公室沙发 | 国产精品久免费的黄网站 | 国产另类ts人妖一区二区 | 97色伦图片97综合影院 | 精品乱子伦一区二区三区 | a在线观看免费网站大全 | 亚洲成色www久久网站 | 欧美日韩一区二区免费视频 | 亚洲国产高清在线观看视频 | 中文字幕乱码人妻二区三区 | 欧美成人家庭影院 | 丰满岳乱妇在线观看中字无码 | 亚洲精品中文字幕乱码 | 欧洲欧美人成视频在线 | 国产精品视频免费播放 | 77777熟女视频在线观看 а天堂中文在线官网 | 97资源共享在线视频 | 国产人妖乱国产精品人妖 | 国产特级毛片aaaaaaa高清 | 精品国产精品久久一区免费式 | 又黄又爽又色的视频 | 国产精品人妻一区二区三区四 | 亚洲精品综合一区二区三区在线 | 国产精品对白交换视频 | 欧美精品无码一区二区三区 | 少妇激情av一区二区 | 四虎国产精品一区二区 | 日韩精品无码一区二区中文字幕 | 无码毛片视频一区二区本码 | 亚洲熟女一区二区三区 | 亚洲中文字幕在线观看 | 俺去俺来也在线www色官网 | 亚洲综合无码久久精品综合 | 九九热爱视频精品 | 超碰97人人做人人爱少妇 | 少妇性l交大片欧洲热妇乱xxx | 国产精品久久久 | 国产精品人人爽人人做我的可爱 | 水蜜桃亚洲一二三四在线 | 一二三四社区在线中文视频 | 成人精品一区二区三区中文字幕 | 亚洲精品中文字幕久久久久 | av无码久久久久不卡免费网站 | 日韩成人一区二区三区在线观看 | 国精品人妻无码一区二区三区蜜柚 | 日本护士xxxxhd少妇 | 亚洲精品一区二区三区四区五区 | 欧美老妇交乱视频在线观看 | 国产激情艳情在线看视频 | 蜜桃视频韩日免费播放 | 未满小14洗澡无码视频网站 | 成人免费无码大片a毛片 | 国产精品怡红院永久免费 | 青青青手机频在线观看 | 亚洲伊人久久精品影院 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 极品尤物被啪到呻吟喷水 | 中文精品无码中文字幕无码专区 | 亚洲成a人片在线观看无码3d | 99久久精品日本一区二区免费 | 福利一区二区三区视频在线观看 | 色狠狠av一区二区三区 | 国产va免费精品观看 | 日韩人妻无码一区二区三区久久99 | 色综合久久久无码中文字幕 | 国产精品无码久久av | 亲嘴扒胸摸屁股激烈网站 | 成人片黄网站色大片免费观看 | 午夜成人1000部免费视频 | 国产在线一区二区三区四区五区 | 国产无遮挡又黄又爽免费视频 | 精品偷自拍另类在线观看 | 国产精品久免费的黄网站 | 人人妻人人澡人人爽欧美一区九九 | 久久久久久九九精品久 | 在线观看欧美一区二区三区 | 熟女少妇人妻中文字幕 | 在线a亚洲视频播放在线观看 | 国产成人精品一区二区在线小狼 | 成人免费视频一区二区 | 内射欧美老妇wbb | 欧洲极品少妇 | www国产精品内射老师 | 欧美国产日产一区二区 | 狂野欧美性猛xxxx乱大交 | 国产三级精品三级男人的天堂 | 国产精品国产自线拍免费软件 | 国模大胆一区二区三区 | 无码一区二区三区在线观看 | 久久99久久99精品中文字幕 | 国产在线精品一区二区高清不卡 | 欧美精品无码一区二区三区 | 久久天天躁狠狠躁夜夜免费观看 | 亚洲小说春色综合另类 | 高潮毛片无遮挡高清免费 | 欧美人与善在线com | 精品欧洲av无码一区二区三区 | 娇妻被黑人粗大高潮白浆 | 国产精品丝袜黑色高跟鞋 | 亚洲乱码中文字幕在线 | 成 人影片 免费观看 | 久久精品国产日本波多野结衣 | 色诱久久久久综合网ywww | 暴力强奷在线播放无码 | 国产精品亚洲а∨无码播放麻豆 | 国产成人无码一二三区视频 | 亚洲国产av美女网站 | 欧美 日韩 人妻 高清 中文 | 大乳丰满人妻中文字幕日本 | 久久婷婷五月综合色国产香蕉 | 亚洲aⅴ无码成人网站国产app | 中文字幕日产无线码一区 | 国产97在线 | 亚洲 | 男女超爽视频免费播放 | 丰满妇女强制高潮18xxxx | 中文字幕+乱码+中文字幕一区 | 国产精品亚洲а∨无码播放麻豆 | 色欲综合久久中文字幕网 | 久久综合香蕉国产蜜臀av | 国产午夜福利100集发布 | 亚洲精品久久久久久一区二区 | 久久熟妇人妻午夜寂寞影院 | 鲁一鲁av2019在线 | 精品无码一区二区三区的天堂 | 国産精品久久久久久久 | 国产明星裸体无码xxxx视频 | 国产精品手机免费 | 午夜性刺激在线视频免费 | 2019nv天堂香蕉在线观看 | 国产亚洲精品久久久久久久 | 免费播放一区二区三区 | 国产一区二区三区精品视频 | 未满小14洗澡无码视频网站 | 色综合久久久无码中文字幕 | 色五月丁香五月综合五月 | 欧美国产日韩亚洲中文 | 久久久久99精品国产片 | 亚洲成av人片天堂网无码】 | 又大又硬又黄的免费视频 | 日本一卡2卡3卡四卡精品网站 | 波多野结衣av在线观看 | 大色综合色综合网站 | 久久亚洲中文字幕精品一区 | 亚洲中文字幕成人无码 | 国内丰满熟女出轨videos | 98国产精品综合一区二区三区 | 国产成人亚洲综合无码 | 纯爱无遮挡h肉动漫在线播放 | 99久久久无码国产精品免费 | 国产精品高潮呻吟av久久4虎 | 无遮挡啪啪摇乳动态图 | 亚洲中文字幕无码一久久区 | 中文字幕乱码人妻二区三区 | 人妻少妇精品无码专区动漫 | 国产色在线 | 国产 | 成人精品一区二区三区中文字幕 | 美女毛片一区二区三区四区 | 少妇无码一区二区二三区 | 欧美日韩视频无码一区二区三 | 纯爱无遮挡h肉动漫在线播放 | 丰满少妇女裸体bbw | 国产在线无码精品电影网 | 亚洲国产精品无码一区二区三区 | 激情国产av做激情国产爱 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 日韩视频 中文字幕 视频一区 | 麻豆精产国品 | 最新国产麻豆aⅴ精品无码 | 午夜精品一区二区三区在线观看 | 高潮毛片无遮挡高清免费视频 | 性生交大片免费看l | 六月丁香婷婷色狠狠久久 | 国产午夜福利亚洲第一 | 国产高潮视频在线观看 | 成 人 网 站国产免费观看 | 性欧美牲交xxxxx视频 | 国内丰满熟女出轨videos | 波多野结衣av在线观看 | 久久国产自偷自偷免费一区调 | 亚洲国产午夜精品理论片 | 乱码午夜-极国产极内射 | 人妻少妇精品无码专区二区 | 国产在线精品一区二区三区直播 | 大肉大捧一进一出视频出来呀 | 在线精品亚洲一区二区 | 国产av无码专区亚洲awww | 欧美 日韩 亚洲 在线 | 毛片内射-百度 | 波多野结衣 黑人 | 人人妻人人澡人人爽欧美一区九九 | 精品人妻人人做人人爽 | 中国女人内谢69xxxx | 亚洲综合伊人久久大杳蕉 | 亚洲呦女专区 | 一本大道久久东京热无码av | 亚洲精品一区三区三区在线观看 | 日韩成人一区二区三区在线观看 | 永久免费观看美女裸体的网站 | 在线天堂新版最新版在线8 | 亚洲成色在线综合网站 | 国产办公室秘书无码精品99 | 天天爽夜夜爽夜夜爽 | 国产成人一区二区三区在线观看 | 久久精品国产日本波多野结衣 | 国产精品无码一区二区桃花视频 | 一区二区三区乱码在线 | 欧洲 | 亚洲色欲色欲天天天www | 日本成熟视频免费视频 | 日韩精品成人一区二区三区 | 男人的天堂av网站 | 色欲av亚洲一区无码少妇 | 欧美怡红院免费全部视频 | 97无码免费人妻超级碰碰夜夜 | 女人高潮内射99精品 | 日日噜噜噜噜夜夜爽亚洲精品 | 免费国产成人高清在线观看网站 | 人人爽人人澡人人人妻 | 欧美 日韩 人妻 高清 中文 | 日本护士毛茸茸高潮 | 色窝窝无码一区二区三区色欲 | 最近中文2019字幕第二页 | √天堂中文官网8在线 | 国产人成高清在线视频99最全资源 | 色婷婷综合激情综在线播放 | 成人欧美一区二区三区黑人免费 | 妺妺窝人体色www在线小说 | 精品无人区无码乱码毛片国产 | 久久伊人色av天堂九九小黄鸭 | 精品偷拍一区二区三区在线看 | 中文久久乱码一区二区 | 成人欧美一区二区三区黑人免费 | 国产片av国语在线观看 | 撕开奶罩揉吮奶头视频 | 无人区乱码一区二区三区 | 日本大香伊一区二区三区 | 免费国产黄网站在线观看 | 无码人妻黑人中文字幕 | 无码人妻黑人中文字幕 | 亚洲精品综合五月久久小说 | 日本va欧美va欧美va精品 | 欧美性黑人极品hd | 色爱情人网站 | 成人精品视频一区二区三区尤物 | 两性色午夜视频免费播放 | 无码一区二区三区在线观看 | 久久久中文字幕日本无吗 | 亚洲精品欧美二区三区中文字幕 | 领导边摸边吃奶边做爽在线观看 | 女人被男人躁得好爽免费视频 | 国产成人综合色在线观看网站 | 人妻aⅴ无码一区二区三区 | 少女韩国电视剧在线观看完整 | 丰满少妇弄高潮了www | 日本一卡2卡3卡四卡精品网站 | 国产一区二区不卡老阿姨 | 一本久久伊人热热精品中文字幕 | 人人妻人人藻人人爽欧美一区 | v一区无码内射国产 | 久久久久99精品国产片 | 人人妻人人藻人人爽欧美一区 | 亚洲熟妇自偷自拍另类 | 娇妻被黑人粗大高潮白浆 | 精品一区二区三区波多野结衣 | 日本一区二区三区免费高清 | 一本久道高清无码视频 |