日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

在ASP.NET Core中创建自定义端点可视化图

發布時間:2023/12/4 asp.net 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在ASP.NET Core中创建自定义端点可视化图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在上篇文章中,我為構建自定義端點可視化圖奠定了基礎,正如我在第一篇文章中展示的那樣。該圖顯示了端點路由的不同部分:文字值,參數,動詞約束和產生結果的端點:

在本文中,我將展示如何通過創建一個自定義的DfaGraphWriter來為自己的應用程序創建一個端點圖。

這篇文章使用了本系列前幾篇文章中的技巧和類,因此我強烈建議在繼續之前先閱讀這些技巧和類。

相關閱讀:

[譯]使用DOT語言和GraphvizOnline來可視化你的ASP.NETCore3.0終結點01

將終結點圖添加到你的ASP.NET Core應用程序中

使用ImpromptuInterface反射方便的創建自定義DfaGraphWriter

為端點圖添加配置

我們首先要看的是如何配置最終端點圖的外觀。我們將為兩種類型的節點和四種類型的邊緣添加配置。邊是:

  • 文字邊緣:路線部分,例如api和values中的文字匹配api/values/{id}。

  • 參數邊緣:路線的參數化部分,例如{id}route中api/values/{id}。

  • 捕獲所有邊:與“全部捕獲”路由參數相對應的邊,例如{**slug}。

  • 策略邊緣:與URL以外的其他約束相對應的邊緣。例如,圖中的基于HTTP謂詞的邊HTTP: GET。

節點是:

  • 匹配節點:與端點匹配關聯的節點,因此將生成響應。

  • 默認節點:不與端點匹配關聯的節點。

每個節點和邊都可以具有任意數量的Graphviz屬性來控制其顯示。下面的GraphDisplayOptions顯示了我在本文開始時用于生成圖形的默認值:

public class GraphDisplayOptions {/// <summary>/// Additional display options for literal edges/// </summary>public string LiteralEdge { get; set; } = string.Empty;/// <summary>/// Additional display options for parameter edges/// </summary>public string ParametersEdge { get; set; } = "arrowhead=diamond color=\"blue\"";/// <summary>/// Additional display options for catchall parameter edges/// </summary>public string CatchAllEdge { get; set; } = "arrowhead=odot color=\"green\"";/// <summary>/// Additional display options for policy edges/// </summary>public string PolicyEdge { get; set; } = "color=\"red\" style=dashed arrowhead=open";/// <summary>/// Additional display options for node which contains a match/// </summary>public string MatchingNode { get; set; } = "shape=box style=filled color=\"brown\" fontcolor=\"white\"";/// <summary>/// Additional display options for node without matches/// </summary>public string DefaultNode { get; set; } = string.Empty; }

我們現在可以使用這個對象來控制顯示,并使用上一篇文章中所示的ImpromptuInterface“代理”技術來創建我們的自定義圖形編寫器。

創建自定義的DfaGraphWriter

我們的自定義圖形編輯器(巧妙地稱為CustomDfaGraphWriter)在很大程度上基于包含在ASP.NET Core中的DfaGraphWriter。該類的主體與原始類相同,但有以下更改:

  • 將GraphDisplayOptions注入類中以自定義顯示。

  • 使用ImpromptuInterface庫來處理內部DfaMatcherBuilder和DfaNode類,如上一篇文章中所示。

  • 自定義WriteNode函數以使用我們的自定義樣式。

  • 添加一個Visit函數來處理IDfaNode接口,而不是在內部DfaNode類上使用Visit()方法。

CustomDfaGraphWriter的全部代碼如下所示,重點是主Write()功能。我保持了與原始版本幾乎相同的實現,只是更新了我們必須更新的部分。

public class CustomDfaGraphWriter {// Inject the GraphDisplayOptionsprivate readonly IServiceProvider _services;private readonly GraphDisplayOptions _options;public CustomDfaGraphWriter(IServiceProvider services, GraphDisplayOptions options){_services = services;_options = options;}public void Write(EndpointDataSource dataSource, TextWriter writer){// Use ImpromptuInterface to create the required dependencies as shown in previous postType matcherBuilder = typeof(IEndpointSelectorPolicy).Assembly.GetType("Microsoft.AspNetCore.Routing.Matching.DfaMatcherBuilder");// Build the list of endpoints used to build the graphvar rawBuilder = _services.GetRequiredService(matcherBuilder);IDfaMatcherBuilder builder = rawBuilder.ActLike<IDfaMatcherBuilder>();// This is the same logic as the original graph writervar endpoints = dataSource.Endpoints;for (var i = 0; i < endpoints.Count; i++){if (endpoints[i] is RouteEndpoint endpoint && (endpoint.Metadata.GetMetadata<ISuppressMatchingMetadata>()?.SuppressMatching ?? false) == false){builder.AddEndpoint(endpoint);}}// Build the raw tree from the registered routesvar rawTree = builder.BuildDfaTree(includeLabel: true);IDfaNode tree = rawTree.ActLike<IDfaNode>();// Store a list of nodes that have already been visitedvar visited = new Dictionary<IDfaNode, int>();// Build the graph by visiting each node, and calling WriteNode on eachwriter.WriteLine("digraph DFA {");Visit(tree, WriteNode);writer.WriteLine("}");void WriteNode(IDfaNode node){/* Write the node to the TextWriter *//* Details shown later in this post*/}}static void Visit(IDfaNode node, Action<IDfaNode> visitor){/* Recursively visit each node in the tree. *//* Details shown later in this post*/} }

為了簡潔起見,我在這里省略了Visit和?WriteNode函數,但是我們會盡快對其進行研究。我們將從Visit函數開始,因為該函數最接近原始函數。

更新Visit函數以與IDfaNode一起使用

正如我在上一篇文章中所討論的,創建自定義DfaGraphWriter的最大問題之一是它對內部類的使用。為了解決這個問題,我使用ImpromptuInterface創建了包裝原始對象的代理對象:

原始的Visit()方法是DfaNode類中的方法。它遞歸地訪問端點樹中的每個節點,為每個節點調用一個提供的Action<>函數。

由于DfaNode是internal,我在CustomDfaGraphWriter中實現了一個靜態的Visit來代替。

我們的定制實現大體上與原始實現相同,但是我們必須在“原始”DfaNodes和我們的IDfaNode代理之間進行一些有點困難的轉換。更新后的方法如下所示。該方法接受兩個參數,即被檢查的節點,以及在每個參數上運行的Action<>。

static void Visit(IDfaNode node, Action<IDfaNode> visitor) {// Does the node of interest have any nodes connected by literal edges?if (node.Literals?.Values != null){// node.Literals is actually a Dictionary<string, DfaNode>foreach (var dictValue in node.Literals.Values){// Create a proxy for the child DfaNode node and visit itIDfaNode value = dictValue.ActLike<IDfaNode>();Visit(value, visitor);}}// Does the node have a node connected by a parameter edge?// The reference check breaks any cycles in the graphif (node.Parameters != null && !ReferenceEquals(node, node.Parameters)){// Create a proxy for the DfaNode node and visit itIDfaNode parameters = node.Parameters.ActLike<IDfaNode>();Visit(parameters, visitor);}// Does the node have a node connected by a catch-all edge?// The refernece check breaks any cycles in the graphif (node.CatchAll != null && !ReferenceEquals(node, node.CatchAll)){// Create a proxy for the DfaNode node and visit itIDfaNode catchAll = node.CatchAll.ActLike<IDfaNode>();Visit(catchAll, visitor);}// Does the node have a node connected by a policy edges?if (node.PolicyEdges?.Values != null){// node.PolicyEdges is actually a Dictionary<object, DfaNode>foreach (var dictValue in node.PolicyEdges.Values){IDfaNode value = dictValue.ActLike<IDfaNode>();Visit(value, visitor);}}// Write the node using the provided Action<>visitor(node); }

Visit函數使用post-order遍歷,因此在使用visitor函數編寫節點之前,它首先“深入”地遍歷節點的子節點。這與原始DfaNode.Visit()功能相同。

我們現在快到了。我們有一個類,它構建端點節點樹,遍歷樹中的所有節點,并為每個節點運行一個函數。剩下的就是定義訪問者函數WriteNode()。

定義自定義WriteNode函數

我們終于到了最重要的部分,控制了端點圖的顯示方式。到目前為止,所有自定義和努力都是使我們能夠自定義WriteNode功能。

WriteNode()是一個局部函數,它使用點圖描述語言將一個節點連同任何連接的邊一起寫入TextWriter輸出。

我們的自定義WriteNode()函數與原始函數幾乎相同。有兩個主要區別:

  • 原始的圖形編寫器使用DfaNodes,我們必須轉換為使用IDfaNode代理。

  • 原始圖形編寫器對所有節點和邊使用相同的樣式。我們根據配置的GraphDisplayOptions定制節點和邊的顯示。

由于WriteNode是一個局部函數,它可以從封閉函數訪問變量。這包括writer參數(用于將圖形寫入輸出)和以前寫入節點的已訪問字典。

下面顯示了我們的方法(已被大量注釋)的自定義版本WriteNode()。

void WriteNode(IDfaNode node) {// add the node to the visited node dictionary if it isn't already// generate a zero-based integer label for the nodeif (!visited.TryGetValue(node, out var label)){label = visited.Count;visited.Add(node, label);}// We can safely index into visited because this is a post-order traversal,// all of the children of this node are already in the dictionary.// If this node is linked to any nodes by a literal edgeif (node.Literals != null){foreach (DictionaryEntry dictEntry in node.Literals){// Foreach linked node, get the label for the edge and the linked nodevar edgeLabel = (string)dictEntry.Key;IDfaNode value = dictEntry.Value.ActLike<IDfaNode>();int nodeLabel = visited[value];// Write an edge, including our custom styling for literal edgeswriter.WriteLine($"{label} -> {nodeLabel} [label=\"/{edgeLabel}\" {_options.LiteralEdge}]");}}// If this node is linked to a nodes by a parameter edgeif (node.Parameters != null){IDfaNode parameters = node.Parameters.ActLike<IDfaNode>();int nodeLabel = visited[catchAll];// Write an edge labelled as /* using our custom styling for parameter edgeswriter.WriteLine($"{label} -> {nodeLabel} [label=\"/**\" {_options.CatchAllEdge}]");}// If this node is linked to a catch-all edgeif (node.CatchAll != null && node.Parameters != node.CatchAll){IDfaNode catchAll = node.CatchAll.ActLike<IDfaNode>();int nodeLabel = visited[catchAll];// Write an edge labelled as /** using our custom styling for catch-all edgeswriter.WriteLine($"{label} -> {nodelLabel} [label=\"/**\" {_options.CatchAllEdge}]");}// If this node is linked to any Policy Edgesif (node.PolicyEdges != null){foreach (DictionaryEntry dictEntry in node.PolicyEdges){// Foreach linked node, get the label for the edge and the linked nodevar edgeLabel = (object)dictEntry.Key;IDfaNode value = dictEntry.Value.ActLike<IDfaNode>();int nodeLabel = visited[value];// Write an edge, including our custom styling for policy edgeswriter.WriteLine($"{label} -> {nodeLabel} [label=\"{key}\" {_options.PolicyEdge}]");}}// Does this node have any associated matches, indicating it generates a response?var matchCount = node?.Matches?.Count ?? 0;var extras = matchCount > 0 ? _options.MatchingNode // If we have matches, use the styling for response-generating nodes...: _options.DefaultNode; // ...otherwise use the default style// Write the node to the graph outputwriter.WriteLine($"{label} [label=\"{node.Label}\" {extras}]"); }

由于我們將節點從“葉”節點寫回到樹的根的方式,因此跟蹤這些交互的流程可能會有些混亂。例如,如果我們看一下本文開頭顯示的基本應用程序的輸出,您會看到“葉子”端點都被首先寫入:healthz運行狀況檢查端點和終端匹配生成路徑最長的端點:

digraph DFA {1 [label="/healthz/" shape=box style=filled color="brown" fontcolor="white"]2 [label="/api/Values/{...}/ HTTP: GET" shape=box style=filled color="brown" fontcolor="white"]3 [label="/api/Values/{...}/ HTTP: PUT" shape=box style=filled color="brown" fontcolor="white"]4 [label="/api/Values/{...}/ HTTP: DELETE" shape=box style=filled color="brown" fontcolor="white"]5 [label="/api/Values/{...}/ HTTP: *" shape=box style=filled color="brown" fontcolor="white"]6 -> 2 [label="HTTP: GET" color="red" style=dashed arrowhead=open]6 -> 3 [label="HTTP: PUT" color="red" style=dashed arrowhead=open]6 -> 4 [label="HTTP: DELETE" color="red" style=dashed arrowhead=open]6 -> 5 [label="HTTP: *" color="red" style=dashed arrowhead=open]6 [label="/api/Values/{...}/"]7 [label="/api/Values/ HTTP: GET" shape=box style=filled color="brown" fontcolor="white"]8 [label="/api/Values/ HTTP: POST" shape=box style=filled color="brown" fontcolor="white"]9 [label="/api/Values/ HTTP: *" shape=box style=filled color="brown" fontcolor="white"]10 -> 6 [label="/*" arrowhead=diamond color="blue"]10 -> 7 [label="HTTP: GET" color="red" style=dashed arrowhead=open]10 -> 8 [label="HTTP: POST" color="red" style=dashed arrowhead=open]10 -> 9 [label="HTTP: *" color="red" style=dashed arrowhead=open]10 [label="/api/Values/"]11 -> 10 [label="/Values"]11 [label="/api/"]12 -> 1 [label="/healthz"]12 -> 11 [label="/api"]12 [label="/"] }

即使首先將葉節點寫入圖形輸出,但Graphviz可視化工具通常會以葉節點在底部,邊緣朝下的方式繪制圖形。您可以在https://dreampuf.github.io/GraphvizOnline/在線顯示圖形:

如果要更改圖形的呈現方式,可以自定義GraphDisplayOptions。如果使用我在上一篇文章中描述的“測試”方法,則可以在生成圖形時直接傳遞這些選項。如果使用的是“中間件”方法,則可以改為使用IOptions<>系統進行GraphDisplayOptions注冊,并使用配置系統控制顯示。

摘要

在這篇文章中,我展示了如何創建自定義的DfaGraphWriter來控制如何生成應用程序的端點圖。為了與internal內部類進行互操作,我們使用了ImpromptuInterface,如在上篇文章所示,創建代理,我們可以互動。然后,我們必須編寫一個自定義Visit()函數來使用IDfaNode代理。最后,我們創建了一個自定義WriteNode函數,該函數使用在GraphDisplayOptions對象中定義的自定義設置來顯示不同類型的節點和邊。

往期精彩回顧

【推薦】.NET Core開發實戰視頻課程?★★★

.NET Core實戰項目之CMS 第一章 入門篇-開篇及總體規劃

【.NET Core微服務實戰-統一身份認證】開篇及目錄索引

Redis基本使用及百億數據量中的使用技巧分享(附視頻地址及觀看指南)

.NET Core中的一個接口多種實現的依賴注入與動態選擇看這篇就夠了

10個小技巧助您寫出高性能的ASP.NET Core代碼

用abp vNext快速開發Quartz.NET定時任務管理界面

在ASP.NET Core中創建基于Quartz.NET托管服務輕松實現作業調度

現身說法:實際業務出發分析百億數據量下的多表查詢優化

關于C#異步編程你應該了解的幾點建議

C#異步編程看這篇就夠了

給我好看 您看此文用??·?秒,轉發只需1秒呦~ 好看你就點點我 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的在ASP.NET Core中创建自定义端点可视化图的全部內容,希望文章能夠幫你解決所遇到的問題。

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

爱色婷婷| 亚洲国产中文在线观看 | 麻豆视频在线免费 | 99久久精品一区二区成人 | 91伊人影院 | 91麻豆精品国产 | 日韩理论片在线观看 | 亚洲国产精品第一区二区 | 天天干天天干天天干天天干天天干天天干 | 婷婷丁香在线视频 | 国产免费高清视频 | av网站免费线看精品 | 免费成人看片 | 蜜臀av性久久久久av蜜臀妖精 | 国内精品久久久久久久久久清纯 | 一级性生活片 | 国产精品久久久久影院日本 | 免费下载高清毛片 | 中文在线√天堂 | 国精产品永久999 | 天天操偷偷干 | 久久综合网色—综合色88 | 国产女做a爱免费视频 | 免费视频97 | 精品福利网站 | 精品国产123 | 成人影片在线播放 | 日韩欧美在线视频一区二区 | 国产视频在线一区二区 | 人人澡人人爽 | 亚洲在线国产 | 超碰人人91| 激情视频免费在线观看 | 久久久久成人精品免费播放动漫 | 五月色丁香| 天天综合网国产 | av不卡网站 | 激情五月开心 | 热久久免费视频 | 在线中文字母电影观看 | 色爱区综合激月婷婷 | 99久久电影 | 六月丁香社区 | 天天爱综合 | 少妇激情久久 | 亚洲高清在线视频 | 欧美一二区视频 | 成人三级视频 | 亚洲一级黄色av | 婷婷色站| 91久久国产露脸精品国产闺蜜 | 最近中文字幕在线 | 一级精品视频在线观看宜春院 | 狠狠的操狠狠的干 | 五月婷婷另类国产 | 91插插插免费视频 | 久久伦理网 | 亚洲视频在线看 | 国产精品网站一区二区三区 | 国产96av | 久久激情视频 久久 | 五月黄色 | 在线观看免费福利 | 亚洲成人免费在线 | 欧美精品久久久久久久久久丰满 | 永久免费观看视频 | 超碰97人 | 日韩大陆欧美高清视频区 | 国产精品理论片在线播放 | 欧美一级久久久久 | 91精品啪在线观看国产81旧版 | 91福利在线观看 | av中文天堂 | 欧美日本三级 | 五月天免费网站 | 久久福利综合 | 久久在线免费视频 | 亚洲精品www久久久久久 | 成人理论电影 | 免费a v视频| 亚洲欧洲av在线 | 免费久久99精品国产婷婷六月 | 九月婷婷综合网 | 在线免费黄网站 | 国产精品毛片久久久久久久久久99999999 | 人人躁| 国产无遮挡猛进猛出免费软件 | 国产精品国产三级国产aⅴ9色 | 亚洲精品资源 | 精品国产欧美 | 99精品视频在线播放免费 | 国产喷水在线 | 久久视频一区 | 精品国产乱码久久久久 | 日韩精品影视 | 亚洲激情在线观看 | 激情网婷婷 | 成人黄色在线观看视频 | 国产剧情一区在线 | 在线观看一区视频 | 国产伦精品一区二区三区照片91 | 午夜性色 | 色婷婷精品大在线视频 | 99精品欧美一区二区三区 | 在线观看亚洲国产 | 热热热热热色 | www五月| 精品久久网站 | 精品99在线视频 | 日韩亚洲在线 | 国产91亚洲 | 久在线观看视频 | 午夜精品福利一区二区三区蜜桃 | www.超碰97.com | 亚洲激情综合 | 亚洲精品日韩一区二区电影 | 免费成人av网站 | 中文字幕精品www乱入免费视频 | 亚洲精品国偷拍自产在线观看蜜桃 | 中文字幕在线视频第一页 | 91av视频导航 | 亚洲综合欧美日韩狠狠色 | 成人免费观看视频网站 | 高潮毛片无遮挡高清免费 | 亚洲精品国产视频 | 国产一级片免费观看 | 国产精品ssss在线亚洲 | 国产男女爽爽爽免费视频 | 一区二区三区四区免费视频 | 亚洲日本欧美 | 久久精品久久久久久久 | 亚洲国产精品va在线看 | 日韩欧美国产精品 | 亚洲午夜久久久综合37日本 | 美女网站在线免费观看 | 人人舔人人爱 | 亚洲精品一区二区三区新线路 | 国产二级视频 | 国产精品久久久免费 | 99精品视频在线观看免费 | 国产一区二区在线播放视频 | 久久精品国产精品亚洲 | 久久只精品99品免费久23小说 | 欧美日韩在线观看不卡 | 亚洲免费精彩视频 | 国产99久久久国产精品免费二区 | 日本在线观看一区二区三区 | 国产精品久久久久影院日本 | 欧美日韩一区二区视频在线观看 | 欧美日韩精品免费观看 | 久久色在线播放 | 午夜久久久精品 | 国产丝袜一区二区三区 | 久草在线视频网站 | 一区二区三区四区不卡 | 免费精品久久久 | 99热网站 | 日日狠狠 | 天天草网站| 丁香六月在线观看 | 中文字幕 国产 一区 | 黄污视频网站大全 | 精品国产一区二区久久 | 久草电影在线观看 | 久草久草在线观看 | 天天草夜夜 | 欧美亚洲精品一区 | 日韩字幕| 欧美久久久久久久久 | 成人国产精品一区 | 国产婷婷vvvv激情久 | 中文字幕高清视频 | 国产视频一区二区三区在线 | av青草 | 天天爽天天碰狠狠添 | 中文字幕影片免费在线观看 | 麻豆成人小视频 | 久草久| av一级二级 | 亚洲精品乱码久久久久 | 日韩a在线看 | 最近更新好看的中文字幕 | 中文字幕 国产精品 | 久久成人一区二区 | 国产精品毛片 | 美女视频黄免费的 | 日韩精品中文字幕在线观看 | 亚洲在线精品 | 99在线观看视频网站 | 欧美成人在线免费观看 | 国产视频一级 | 色综合色综合久久综合频道88 | 国产小视频你懂的在线 | 亚洲码国产日韩欧美高潮在线播放 | 亚洲一级黄色 | 黄色大全在线观看 | 久久九九视频 | www.av在线播放 | 97超碰在 | 五月天亚洲婷婷 | 一级黄色免费网站 | 亚洲综合色丁香婷婷六月图片 | 色爽网站| 在线午夜电影神马影院 | 久久人人添人人爽添人人88v | 狠狠干网站 | 国内精品久久久久影院一蜜桃 | 天天操天天操天天操 | 精品国内| 色婷婷视频 | 亚洲一区黄色 | 永久免费av在线播放 | 在线观看成人国产 | 日本九九视频 | 久久免费视频3 | 精品电影一区二区 | 一区二区三区在线免费观看视频 | 天天操网址 | 亚洲视频axxx | 免费在线色 | 国产美女在线免费观看 | 亚洲国产小视频在线观看 | 91麻豆精品国产午夜天堂 | 久免费视频 | 国产亚洲欧美精品久久久久久 | 日韩精品免费一区二区三区 | 探花视频在线版播放免费观看 | 成人免费观看a | 日韩激情在线视频 | 日韩欧美视频免费看 | 日韩精品偷拍 | 久久这里只有精品23 | 欧美一级日韩免费不卡 | 91成品视频 | 久久久精品国产一区二区 | 欧美日韩精品免费观看视频 | 精品久久久久久久久久国产 | 国产精品久久久久影院 | 午夜精品久久久久 | 国产一线二线三线性视频 | 久久黄色小说 | 国产不卡在线看 | 午夜久久福利 | 国产中文字幕在线看 | 九色在线 | 婷五月天激情 | 欧美成人精品欧美一级乱 | 国产一区二区久久久 | 久久精品精品电影网 | 国产 在线观看 | bbbb操bbbb| 国产二区电影 | 久要激情网 | 2019免费中文字幕 | 国产一区二区高清视频 | 国产黄色av影视 | 日韩中文字幕视频在线观看 | 小草av在线播放 | 亚洲伦理电影在线 | 99中文视频在线 | 日韩免费二区 | 欧美激情视频一区二区三区免费 | 天天射一射 | 久久精品91视频 | 亚州国产精品视频 | 亚洲在线视频网站 | 激情五月亚洲 | 天天做天天爽 | 草久久精品 | 成人久久久久久久久 | 99久久精品免费看 | 国产精品 日韩精品 | 欧美日韩国语 | www.黄色片.com | 国偷自产视频一区二区久 | 欧美日韩免费在线视频 | 亚洲国产中文在线 | 久久系列| 三级av在线免费观看 | 国产精品高清免费在线观看 | 91成人精品一区在线播放69 | 六月婷婷网 | 成人一区影院 | 国产精品普通话 | 日韩在线观看精品 | 精品视频一区在线观看 | 久久久久久久久久免费视频 | 西西444www大胆无视频 | 天天干天天做天天操 | 激情综合五月网 | 99久久精品费精品 | 婷婷www | 久久国产高清视频 | 成人一级片在线观看 | 黄色片网站av | 99 久久久久| 亚洲欧美日韩在线一区二区 | 性色av免费观看 | 天堂视频中文在线 | 免费在线电影网址大全 | 91成人天堂久久成人 | 九九热精品视频在线播放 | 精品999| 国产二区电影 | 爱射综合| 欧洲一区二区在线观看 | 成人黄色视 | 狠狠干在线播放 | a视频在线观看免费 | 亚洲电影黄色 | 免费高清在线视频一区· | 夜夜操天天操 | 97超级碰碰碰视频在线观看 | 成年人在线看片 | 在线精品视频在线观看高清 | 亚洲视频资源在线 | 伊人av综合 | 91av在线电影 | 99久久综合狠狠综合久久 | 欧美色综合天天久久综合精品 | 欧美日韩一区久久 | 免费看黄20分钟 | 成人毛片网 | 天堂在线一区 | 综合色在线 | 69久久夜色精品国产69 | 国产精品国产三级国产 | 亚洲蜜桃av| 成人国产网址 | 亚洲精品欧美专区 | 蜜桃视频日韩 | 九九热在线视频 | 日本韩国精品在线 | 亚洲播播 | 国产一区二区日本 | 日韩一区二区三区不卡 | 日韩av不卡在线播放 | 99视频国产精品免费观看 | 免费看的黄色 | 91精品国产亚洲 | 国产在线国偷精品产拍免费yy | 国内精品久久久久久久久久久久 | 日韩av免费网站 | 91精品成人 | 黄色片亚洲 | 国产一区二区久久久 | 国产做a爱一级久久 | 在线观看视频99 | 黄色毛片观看 | 丁香六月五月婷婷 | 日韩网站中文字幕 | 国产福利网站 | 国产精品久久久久久高潮 | 欧美久久久久久久 | 国产视频 久久久 | 国内成人综合 | 96亚洲精品久久久蜜桃 | 黄色高清视频在线观看 | 丁香花中文在线免费观看 | 高清av影院 | 五月天久久婷 | 久久兔费看a级 | 国产精品二区在线 | bbbbb女女女女女bbbbb国产 | 在线观看免费版高清版 | 成人在线一区二区 | www.国产视频 | 人人插超碰 | 国产日韩精品在线 | 福利视频网站 | 久久激情小说 | 中文字幕免费久久 | 中文字幕日韩有码 | 天堂av网在线 | 日韩mv欧美mv国产精品 | 成人免费视频播放 | 国内视频在线 | 精品久久视频 | 日韩色爱 | 免费黄在线看 | 麻豆久久久久久久 | 亚洲欧美在线视频免费 | 免费在线观看一区 | 精品一区二区在线免费观看 | 免费三级大片 | 久久久午夜精品理论片中文字幕 | 国产精品毛片一区视频播不卡 | 国产在线观看不卡 | 免费看黄网站在线 | 中文字幕精品三级久久久 | 精品视频不卡 | 色婷婷精品大在线视频 | 在线精品视频免费播放 | 日韩精品一区在线观看 | 婷婷视频导航 | 日本一区二区不卡高清 | 亚洲开心色 | 亚洲精品国偷拍自产在线观看 | 娇妻呻吟一区二区三区 | 麻豆系列在线观看 | 九九九国产 | 午夜久久久久久久久久影院 | 狠狠色网 | 久久久久亚洲国产精品 | 2018亚洲男人天堂 | 久久久久久免费 | 日本中文字幕在线一区 | 99精品视频网站 | 成年人在线免费看 | 中文字幕av一区二区三区四区 | www.超碰| 天天干天天插伊人网 | av福利在线导航 | 久青草电影 | 久久精精品视频 | av免费看av | 久久久久久久久久久久国产精品 | 韩国精品福利一区二区三区 | 久久成人精品电影 | 激情网婷婷| 日韩一区二区免费视频 | 久久综合婷婷国产二区高清 | 狠狠色综合网站久久久久久久 | 在线国产专区 | 一区二区三区日韩视频在线观看 | 91免费黄视频 | 麻豆影视在线观看 | 久草免费在线视频观看 | 亚洲国产精品成人综合 | 国产一级精品视频 | 免费日韩精品 | 日韩av在线资源 | 成人国产精品久久久 | 久久99欧美 | 国产在线精品观看 | 亚洲成人一区 | 国产精品日韩欧美一区二区 | 久久久www成人免费精品张筱雨 | 婷婷网址| 国产精品久久久久久久久久免费看 | 成人av亚洲 | 国产一级电影 | 国产一级片在线播放 | 99色亚洲| 日韩电影一区二区在线观看 | 日韩激情av在线 | 四虎影视精品 | 在线观av | 91免费高清 | 国产99在线 | 国产真实精品久久二三区 | 国产黄色免费在线观看 | 一区二区三区在线观看中文字幕 | 在线视频一二三 | 天堂av免费观看 | 色婷婷伊人| 手机在线黄色网址 | 99久免费精品视频在线观看 | 中文字幕一区在线观看视频 | 中文字幕在线看视频国产中文版 | 99精品区 | 亚洲午夜久久久久久久久电影网 | 国产成人免费高清 | 欧美日韩成人一区 | 99精品在线视频播放 | 午夜私人影院久久久久 | 久久狠狠一本精品综合网 | 91亚洲精品久久久蜜桃 | 国产成人精品久久久久蜜臀 | 久久国产露脸精品国产 | 丁香婷婷综合激情 | 亚洲波多野结衣 | 国产精品久久久久久久久久久久 | 91亚洲精品久久久中文字幕 | 国产一区二区三区高清播放 | 在线观看免费一级片 | 日韩久久精品一区二区三区下载 | 正在播放一区二区 | 中文字幕在线视频一区二区三区 | 欧美一级片在线 | 国产精品理论片在线播放 | 日韩在线免费观看视频 | 久久久www成人免费精品张筱雨 | 国内偷拍精品视频 | 在线观看国产成人av片 | 欧美少妇bbwhd | 色视频在线观看免费 | 日日草天天草 | 国产福利小视频在线 | 日韩欧美在线视频一区二区 | 伊人伊成久久人综合网站 | www.天天射 | 国产视频久久 | 99人成在线观看视频 | 日本精品久久久久久 | 干 操 插| 探花视频免费在线观看 | 欧美无极色 | 91.精品高清在线观看 | 中文国产字幕 | 81精品国产乱码久久久久久 | 久久国产电影 | 人人插超碰 | 天天射天天操天天色 | 狠狠网 | 婷婷久久一区 | 日韩在线免费不卡 | 精品麻豆入口免费 | 国精产品一二三线999 | 国产五月色婷婷六月丁香视频 | 久久人人爽人人爽人人片av软件 | 天天操综合网站 | 成人在线视频一区 | 中文字幕综合在线 | 五月开心综合 | 最新真实国产在线视频 | 久久久国产在线视频 | 日韩视频中文字幕 | 国产中文字幕91 | 五月丁色| 国产精品久久久久久婷婷天堂 | 麻豆免费在线视频 | 亚洲激情在线播放 | 亚洲欧美日韩一区二区三区在线观看 | 国产区精品区 | 九九久久精品 | 亚洲精品国久久99热 | 97超碰人| 日韩精品电影在线播放 | 日韩在线国产精品 | 久久激五月天综合精品 | 成年人国产视频 | 在线免费观看视频一区二区三区 | 欧美一区免费在线观看 | 久久久久久久久久免费视频 | 九色91视频 | 久久久久国产精品免费网站 | av成人在线电影 | 日韩中文字幕网站 | 色姑娘综合天天 | 欧美性色综合网 | 亚洲最新av在线 | 黄色一级大片在线免费看产 | 亚洲精品久久久蜜桃 | 探花视频在线观看免费 | 久久久久综合精品福利啪啪 | 亚洲精品国产精品国产 | 国产日韩欧美在线 | 亚洲理论电影 | 97国产精品亚洲精品 | 91精品人成在线观看 | 日韩在线视频免费播放 | 亚洲免费一级 | 成人午夜av电影 | 国产视频欧美视频 | 亚洲高清在线视频 | 国产中出在线观看 | 亚洲区色 | 久久精品视频一 | 成人免费视频网站在线观看 | 成人黄大片视频在线观看 | 伊人网综合在线观看 | 国产一级在线 | 国产91精品看黄网站在线观看动漫 | 国产精品免费一区二区三区 | 欧美黄色高清 | 亚洲 欧美 综合 在线 精品 | 最近最新中文字幕视频 | 欧美成人久久 | 午夜99| 日韩电影在线观看一区二区 | 人人艹视频 | 日韩黄色在线 | 狠狠干网 | 又污又黄网站 | 国内视频一区二区 | 亚洲三级影院 | 成人黄色小视频 | 九九色在线观看 | 不卡av电影在线 | 久久久在线免费观看 | 国产亚洲精品久久久久久移动网络 | 日韩99热 | 色视频 在线 | 91丝袜美腿| 97超碰福利久久精品 | 日韩亚洲欧美中文字幕 | 视频国产在线观看18 | 国产精品三级视频 | 国产美女免费观看 | 91在线观看视频网站 | 在线观看中文字幕av | www.天天干 | 国产精品美女毛片真酒店 | 天天射天天干 | 精品v亚洲v欧美v高清v | 亚州免费视频 | 精品久久精品久久 | 丁香婷婷色综合亚洲电影 | 8x成人免费视频 | 亚洲精品国内 | 成人超碰97| 亚洲精品免费观看视频 | 久久精品网 | 99国产精品视频免费观看一公开 | 综合色狠狠 | 在线精品视频在线观看高清 | 欧美老女人xx | 免费黄色av片| 在线观看亚洲专区 | 中文字幕在线观看一区 | 国产精品久久艹 | 97偷拍视频 | 91网站免费观看 | 久久超级碰视频 | 成人午夜免费福利 | 精品久久网站 | www.色就是色 | 尤物九九久久国产精品的分类 | 日本黄色免费在线观看 | 国产精品免费看久久久8精臀av | 国产精品99久久久久久人免费 | 91精品中文字幕 | 国产精品va在线观看入 | 久久免费电影网 | 亚洲精品在线免费观看视频 | 国产免费观看高清完整版 | 在线综合 亚洲 欧美在线视频 | 久久久黄视频 | 麻豆一区二区 | 最新久久免费视频 | 国产在线观看 | 91看成人| 欧美污在线观看 | 黄色1级毛片 | 日韩精品在线看 | 韩日视频在线 | 成年免费在线视频 | 天天干天天操天天做 | 中文字幕在线观看视频一区 | 在线观看免费av片 | 午夜精品福利一区二区三区蜜桃 | 99国产成+人+综合+亚洲 欧美 | 亚洲传媒在线 | 国产精品片 | 91亚洲狠狠婷婷综合久久久 | 精品国产一区二 | 麻豆传媒视频在线免费观看 | 日韩啪啪小视频 | 激情av网| 久久综合网色—综合色88 | 午夜少妇av | 日日爱网址 | 一区二区三区四区在线免费观看 | 国产视频精选 | 超碰在线最新地址 | 色999精品 | 天天综合久久综合 | 97麻豆视频| 人人看人人做人人澡 | 中文字幕在线观看一区二区 | 奇米影音四色 | 久久网站免费 | 国产视频手机在线 | 波多野结衣小视频 | 久久综合五月婷婷 | 精品国产电影 | 国产视频综合在线 | 成人av影视 | 国产精品尤物视频 | 婷久久 | 91精品久久香蕉国产线看观看 | 中文字幕在线视频免费播放 | 91人人射 | 精品久久久久久电影 | 日韩av在线免费播放 | 亚洲精品国产日韩 | 91麻豆精品 | 色狠狠久久av五月综合 | 亚洲激情在线观看 | 91经典在线| 天天色天天搞 | 操夜夜操| 天操夜夜操 | 全黄色一级片 | 超碰在线观看av.com | 亚洲成年人免费网站 | 九九久久国产 | 国产91学生粉嫩喷水 | 日韩一区视频在线 | 丁香六月婷婷 | 97超在线 | 国产亚洲午夜高清国产拍精品 | 国产成人精品一区一区一区 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 欧美精品久久人人躁人人爽 | 极品嫩模被强到高潮呻吟91 | 国产三级精品三级在线观看 | 免费看黄的视频 | 国产69久久久欧美一级 | 人人草在线视频 | 17婷婷久久www | 久久国产视频网站 | 国产免费一区二区三区最新6 | 久久久国产影视 | 一区电影 | 亚洲国产精品一区二区久久,亚洲午夜 | 国精产品999国精产 久久久久 | 国产亚洲视频中文字幕视频 | 欧美日韩在线视频观看 | 日韩丝袜在线观看 | 日韩欧美视频在线 | 三上悠亚在线免费 | 中文字幕在线国产 | 国产99久久久国产精品成人免费 | 免费视频资源 | 亚洲精品国产精品99久久 | 国产精品视频区 | 九九久久免费 | 亚洲在线不卡 | 99久久日韩精品视频免费在线观看 | 欧美最猛性xxxxx免费 | 久草在线| 中文字幕在线观看不卡 | 国产1级毛片 | 日韩欧美在线观看一区二区 | 免费观看国产成人 | 欧美美女视频在线观看 | 天天插天天 | 青青草国产精品视频 | .精品久久久麻豆国产精品 亚洲va欧美 | 欧美在线aa| 国产明星视频三级a三级点| www蜜桃视频 | 精品久久精品久久 | 13日本xxxxxⅹxxx20 | 精品一区二区日韩 | 在线中文日韩 | 中文永久免费观看 | 久久爱www. | 久久高清免费观看 | 九九在线高清精品视频 | 日韩欧美精品一区 | 亚洲欧洲av在线 | 久久精品国产v日韩v亚洲 | 欧美一级在线看 | 亚州国产精品久久久 | 91九色视频国产 | 成年人视频免费在线 | 四虎免费在线观看 | 很黄很黄的网站免费的 | 成人中文字幕+乱码+中文字幕 | 色av网站| 成人动漫视频在线 | 色多多污污在线观看 | 日韩精品播放 | 一区二区三区电影在线播 | 在线观看小视频 | 激情电影影院 | 国产精品久久久久久麻豆一区 | 国产录像在线观看 | 午夜精品av在线 | 日韩一区正在播放 | 午夜色性片 | 中文字幕频道 | 日本大尺码专区mv | 国产精品不卡在线观看 | 最近中文字幕在线 | 2020天天干天天操 | 午夜12点 | 欧美人人爱| 亚洲电影图片小说 | 久久精品www人人爽人人 | 97手机电影网 | 国产麻豆精品免费视频 | 精品久久久久一区二区国产 | 91最新国产| 91精品国产99久久久久 | 在线观看va | 欧美成人aa| 欧美精品国产综合久久 | 久久亚洲欧美 | 波多野结衣在线观看一区二区三区 | 欧美日本一区 | 欧美性猛片, | 91桃色免费视频 | 久久伊人八月婷婷综合激情 | 波多野结衣一区 | 国产网站色 | 久久综合免费视频影院 | 久草在线久草在线2 | 日韩欧美一级二级 | 国产毛片久久 | 免费亚洲婷婷 | 国产日本高清 | 在线观看免费一级片 | 97在线观看免费视频 | 黄色网址中文字幕 | 粉嫩一二三区 | a视频免费在线观看 | 国产高清不卡一区二区三区 | av片一区二区 | 91视频高清完整版 | 国产在线更新 | av免费片| 久久99久久99精品免观看粉嫩 | 国产 亚洲 欧美 在线 | 超碰av在线播放 | 在线观看v片 | 婷婷色中文 | 天天爱天天插 | 国产99久久99热这里精品5 | 九九在线高清精品视频 | 天天操天天射天天插 | 国内毛片毛片 | 久久国产精品久久w女人spa | 99资源网| 日本精品va在线观看 | 日韩在线视频线视频免费网站 | 亚洲免费在线观看视频 | 欧美极品一区二区三区 | 激情五月播播久久久精品 | 久久久久 | 日本护士三级少妇三级999 | av丝袜天堂| 制服丝袜成人在线 | 网址你懂的在线观看 | 国产资源网站 | 一区二区视频免费在线观看 | 92国产精品久久久久首页 | 中文在线a∨在线 | 日韩欧美电影 | 国产夫妻性生活自拍 | 国产视频手机在线 | 久草影视在线 | 在线看片一区 | 日韩欧美视频在线播放 | 在线观看免费成人 | 免费情趣视频 | 一区二区三区精品久久久 | 色多多污污 | 日韩欧美在线免费 | 超碰午夜 | 日韩大片在线免费观看 | 成年人app网址 | 久久久久久久免费观看 | 亚洲jizzjizz日本少妇 | 日韩精品视频免费在线观看 | 久久草视频 | 久久人人精品 | 久久综合中文字幕 | 久久久久久网站 | 国产成人精品av在线 | 欧洲激情综合 | 成人一级片在线观看 | 天天射天天舔天天干 | 毛片网在线 | 91亚洲成人 | www.久久视频| 欧美日本在线视频 | 亚洲三级黄色 | 久久久国产精品亚洲一区 | 国产一区二区三区高清播放 | 深夜国产福利 | 精品视频久久久久久 | 日日日操 | 91九色自拍 | 久久久久成人免费 | 国产精品免费观看久久 | 91视频 - 88av | 特级毛片网 | 色综合久久66 | 免费一级日韩欧美性大片 | 久久艹免费 | 二区三区毛片 | 草免费视频 | 99这里只有久久精品视频 | japanesefreesexvideo高潮 | 国产精品久久久久久久久久久久午夜片 | 精品久久1 | 国产一区二区在线视频观看 | www.com.黄| 久久成熟| 日韩在线网 | 三日本三级少妇三级99 | 国产成人区 | 中文字幕在线观看视频一区二区三区 | 五月激情姐姐 | 亚洲午夜久久久久 | 久久精品这里精品 | 91cn国产在线| 久插视频 | 亚洲精品影视在线观看 | 99视频在线观看免费 | 91免费高清 | 国产精美视频 | 国产亚洲精品综合一区91 | 欧美激情精品久久久久久 | 国产又粗又硬又长又爽的视频 | 成人一区二区在线观看 | 中文字幕免费高清 | 精品久久久久一区二区国产 | 精品国产电影一区二区 | 五月激情六月丁香 | 国产最新在线视频 | 岛国大片免费视频 | 日本中文乱码卡一卡二新区 | 免费av影视| 亚洲国产成人在线观看 | 91九色在线 | 国产a级片免费观看 | 美女福利视频网 | 欧美日韩国产欧美 | 色黄久久久久久 | 久草视频免费播放 | 免费一级片在线观看 | 91在线播放国产 | 91在线免费视频 | 天天艹天天干天天 | 国产高h视频 | 欧美国产精品一区二区 | 九九热只有这里有精品 | 91系列在线观看 | 久草视频免费在线播放 | 亚洲精品视频偷拍 | 在线视频 日韩 | 国产一级免费视频 | 超碰在线日本 | wwwav视频 | 日韩v欧美v日本v亚洲v国产v | 亚洲国产精品小视频 | 国产精品免费久久久久影院仙踪林 | 美女av电影 | 天天爽综合网 | 中文字幕免费成人 | 日韩av一区二区在线播放 | 日韩精品免费在线播放 | 香蕉视频4aa | 国产精品资源在线 | 欧美久久久久久久久久 | 日韩三级久久 | 免费a视频在线 | www.91国产| 在线观看视频你懂 | 亚洲亚洲精品在线观看 | 国产视频日韩视频欧美视频 | 久久国产欧美日韩精品 | 日韩一级黄色片 | 中文字幕亚洲精品在线观看 | 超碰99在线| 精品国产一区二区三区在线 | 99精品一级欧美片免费播放 | 色婷婷狠狠五月综合天色拍 | 在线观看日韩免费视频 | av黄在线播放 | 国产情侣一区 | 久久久精品亚洲 | www五月天 | 日韩精品免费在线视频 | 在线亚洲午夜片av大片 | 日免费视频 | 人人澡人人澡人人 | 欧美做受69 | 缴情综合网五月天 | 三级av中文字幕 | 成人黄色电影在线 | av在线网站观看 | 成人手机在线视频 | 最新真实国产在线视频 | 欧美激情视频一区 | 亚洲欧洲精品一区二区精品久久久 | 中文字幕一二 | 欧美日韩中字 | 国产黄色片网站 | 精品国产_亚洲人成在线 | 9999精品免费视频 | 欧美激情综合五月色丁香小说 | 91视频高清免费 | 亚洲视频第一页 | 色视频在线| 国产毛片在线 | 成人午夜性影院 | 人人爽久久久噜噜噜电影 | 一级一级一片免费 | 久久成人免费电影 | 狠狠躁天天躁 | 日韩精品字幕 | 欧美久久久久久久久久久久久 | 天堂av在线中文在线 | 日韩大片在线免费观看 | 国产99久久久精品 | 狠狠狠狠狠狠狠狠 | 欧美色精品天天在线观看视频 | 国产精品99久久久久久久久 | 天天色天 | 嫩草av在线 | 中文字幕成人网 | 欧美视频在线观看免费网址 |