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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

实现一个基于动态代理的 AOP

發(fā)布時間:2023/12/4 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实现一个基于动态代理的 AOP 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

實現(xiàn)一個基于動態(tài)代理的 AOP

Intro

上次看基于動態(tài)代理的 AOP 框架實現(xiàn),立了一個 Flag, 自己寫一個簡單的 AOP 實現(xiàn)示例,今天過來填坑了

目前的實現(xiàn)是基于 Emit 來做的,后面有時間再寫一個基于 Roslyn 來實現(xiàn)的示例

效果演示

演示代碼:

切面邏輯定義:

public class TryInvokeAspect : AbstractAspect {public override void Invoke(MethodInvocationContext methodInvocationContext, Action next){Console.WriteLine($"begin invoke method {methodInvocationContext.ProxyMethod.Name} in {GetType().Name}...");try{next();}catch (Exception e){Console.WriteLine($"Invoke {methodInvocationContext.ProxyMethod.DeclaringType?.FullName}.{methodInvocationContext.ProxyMethod.Name} exception");Console.WriteLine(e);}Console.WriteLine($"end invoke method {methodInvocationContext.ProxyMethod.Name} in {GetType().Name}...");} } public class TryInvoke1Aspect : AbstractAspect {public override void Invoke(MethodInvocationContext methodInvocationContext, Action next){Console.WriteLine($"begin invoke method {methodInvocationContext.ProxyMethod.Name} in {GetType().Name}...");try{next();}catch (Exception e){Console.WriteLine($"Invoke {methodInvocationContext.ProxyMethod.DeclaringType?.FullName}.{methodInvocationContext.ProxyMethod.Name} exception");Console.WriteLine(e);}Console.WriteLine($"end invoke method {methodInvocationContext.ProxyMethod.Name} in {GetType().Name}...");} } public class TryInvoke2Aspect : AbstractAspect {public override void Invoke(MethodInvocationContext methodInvocationContext, Action next){Console.WriteLine($"begin invoke method {methodInvocationContext.ProxyMethod.Name} in {GetType().Name}...");try{next();}catch (Exception e){Console.WriteLine($"Invoke {methodInvocationContext.ProxyMethod.DeclaringType?.FullName}.{methodInvocationContext.ProxyMethod.Name} exception");Console.WriteLine(e);}Console.WriteLine($"end invoke method {methodInvocationContext.ProxyMethod.Name} in {GetType().Name}...");} }

測試服務(wù)定義

// 測試接口定義 public interface ITestService {[TryInvokeAspect]void Test();[TryInvokeAspect][TryInvoke1Aspect][TryInvoke2Aspect]void Test1(int a, string b);[TryInvokeAspect]string Test2();[TryInvokeAspect]int Test3(); } // 測試接口實例定義 public class TestService : ITestService {[TryInvokeAspect]public virtual string TestProp { get; set; }public void Test(){Console.WriteLine("test invoked");}public virtual void Test1(int a, string b){Console.WriteLine($"a:{a}, b:{b}");}[TryInvoke1Aspect]public virtual string Test2(){return "Hello";}[TryInvokeAspect]public virtual int Test3(){return 1;} }

測試代碼:

//var testService = ProxyGenerator.Instance.CreateInterfaceProxy<ITestService>(); var testService = ProxyGenerator.Instance.CreateInterfaceProxy<ITestService, TestService>(); // var testService = ProxyGenerator.Instance.CreateClassProxy<TestService>(); // testService.TestProp = "12133"; testService.Test(); Console.WriteLine(); testService.Test1(1, "str"); var a = testService.Test2(); var b = testService.Test3(); Console.WriteLine($"a:{a}, b:{b}"); Console.ReadLine();

輸出效果:

整體結(jié)構(gòu)

ProxyGenerator

ProxyGenerator 代理生成器,用來創(chuàng)建代理對象

public class ProxyGenerator {public static readonly ProxyGenerator Instance = new ProxyGenerator();public object CreateInterfaceProxy(Type interfaceType){var type = ProxyUtil.CreateInterfaceProxy(interfaceType);return Activator.CreateInstance(type);}public object CreateInterfaceProxy(Type interfaceType, Type implementationType){var type = ProxyUtil.CreateInterfaceProxy(interfaceType, implementationType);return Activator.CreateInstance(type);}public object CreateClassProxy(Type classType, params Type[] interfaceTypes){var type = ProxyUtil.CreateClassProxy(classType, interfaceTypes);return Activator.CreateInstance(type);}public object CreateClassProxy(Type classType, Type implementationType, params Type[] interfaceTypes){var type = ProxyUtil.CreateClassProxy(implementationType, interfaceTypes);return Activator.CreateInstance(type);} }

為了更方便的使用泛型,定義了幾個擴展方法:

public static class Extensions {public static TInterface CreateInterfaceProxy<TInterface>(this ProxyGenerator proxyGenerator) =>(TInterface)proxyGenerator.CreateInterfaceProxy(typeof(TInterface));public static TInterface CreateInterfaceProxy<TInterface, TImplement>(this ProxyGenerator proxyGenerator) where TImplement : TInterface =>(TInterface)proxyGenerator.CreateInterfaceProxy(typeof(TInterface), typeof(TImplement));public static TClass CreateClassProxy<TClass>(this ProxyGenerator proxyGenerator) where TClass : class =>(TClass)proxyGenerator.CreateClassProxy(typeof(TClass));public static TClass CreateClassProxy<TClass, TImplement>(this ProxyGenerator proxyGenerator) where TImplement : TClass =>(TClass)proxyGenerator.CreateClassProxy(typeof(TClass), typeof(TImplement)); }

AbstractAspect

AbstractAspect 切面抽象類,繼承了 Attribute,可以繼承它來實現(xiàn)自己的切面邏輯

public abstract class AbstractAspect : Attribute {public abstract void Invoke(MethodInvocationContext methodInvocationContext, Action next); }

MethodInvocationContext

MethodInvocationContext 方法執(zhí)行上下文,包含了執(zhí)行方法時的原始方法信息以及代理方法信息,方法參數(shù),方法返回值

public class MethodInvocationContext {public MethodInfo ProxyMethod { get; }public MethodInfo MethodBase { get; }public object ProxyTarget { get; }public object Target { get; }public object[] Parameters { get; }public object ReturnValue { get; set; }public MethodInvocationContext(MethodInfo method, MethodInfo methodBase, object proxyTarget, object target, object[] parameters){ProxyMethod = method;MethodBase = methodBase;ProxyTarget = proxyTarget;Target = target;Parameters = parameters;} }

代理方法邏輯

生成代理的方法在上一節(jié)已經(jīng)介紹,主要就是通過 Emit 生成代理類,要寫一些 Emit 代碼, Emit 不在今天的討論范圍內(nèi),這里不多介紹,生成代理方法的時候,會檢查方法上的 Attribute ,如果是切面邏輯就注冊切面邏輯,最后像 asp.net core 中間件一樣組裝在一起拼成一個委托。

核心代碼如下:

// var invocation = new MethodInvocationContext(method, methodBase, this, parameters); var localAspectInvocation = il.DeclareLocal(typeof(MethodInvocationContext)); il.Emit(OpCodes.Ldloc, localCurrentMethod); il.Emit(OpCodes.Ldloc, localMethodBase); il.Emit(OpCodes.Ldarg_0); il.Emit(OpCodes.Ldloc, localTarget); il.Emit(OpCodes.Ldloc, localParameters); // 創(chuàng)建一個 MethodInvocationContext 實例 il.New(typeof(MethodInvocationContext).GetConstructors()[0]); il.Emit(OpCodes.Stloc, localAspectInvocation); // AspectDelegate.InvokeAspectDelegate(invocation); il.Emit(OpCodes.Ldloc, localAspectInvocation); var invokeAspectDelegateMethod =typeof(AspectDelegate).GetMethod(nameof(AspectDelegate.InvokeAspectDelegate)); // 執(zhí)行方法以及注冊的切面邏輯 il.Call(invokeAspectDelegateMethod); il.Emit(OpCodes.Nop); if (method.ReturnType != typeof(void)) {// 獲取方法返回值il.Emit(OpCodes.Ldloc, localAspectInvocation);var getMethod = typeof(MethodInvocationContext).GetProperty("ReturnValue").GetGetMethod();il.EmitCall(OpCodes.Callvirt, getMethod, Type.EmptyTypes);if (method.ReturnType.IsValueType){// 如果是值類型,做一下類型轉(zhuǎn)換il.EmitCastToType(typeof(object), method.ReturnType);}il.Emit(OpCodes.Stloc, localReturnValue);il.Emit(OpCodes.Ldloc, localReturnValue); } il.Emit(OpCodes.Ret);

注冊并執(zhí)行切面邏輯代碼實現(xiàn):

// 緩存方法體執(zhí)行的委托,包含切面邏輯的執(zhí)行和方法的調(diào)用 private static readonly ConcurrentDictionary<string, Action<MethodInvocationContext>> _aspectDelegates = new ConcurrentDictionary<string, Action<MethodInvocationContext>>(); public static void InvokeAspectDelegate(MethodInvocationContext context) {var action = _aspectDelegates.GetOrAdd($"{context.ProxyMethod.DeclaringType}.{context.ProxyMethod}", m =>{// 獲取切面邏輯,這里根據(jù)切面類型做了一個去重var aspects = new List<AbstractAspect>(8);if (context.MethodBase != null){// 獲取類方法上的切面邏輯foreach (var aspect in context.MethodBase.GetCustomAttributes<AbstractAspect>()){if (!aspects.Exists(x => x.GetType() == aspect.GetType())){aspects.Add(aspect);}}}// 獲取接口方法上的切面var methodParameterTypes = context.ProxyMethod.GetParameters().Select(p => p.GetType()).ToArray();foreach (var implementedInterface in context.ProxyTarget.GetType().GetImplementedInterfaces()){var method = implementedInterface.GetMethod(context.ProxyMethod.Name, methodParameterTypes);if (null != method){foreach (var aspect in method.GetCustomAttributes<AbstractAspect>()){if (!aspects.Exists(x => x.GetType() == aspect.GetType())){aspects.Add(aspect);}}}}// 構(gòu)建切面邏輯執(zhí)行管道,類似于 asp.net core 里的請求管道, 以原始方法調(diào)用作為中間件的最后一步var builder = PipelineBuilder.Create<MethodInvocationContext>(x => x.Invoke());foreach (var aspect in aspects){// 注冊切面邏輯builder.Use(aspect.Invoke);}// 構(gòu)建方法執(zhí)行委托return builder.Build();});// 執(zhí)行委托action.Invoke(context);// 檢查返回值,防止切面邏輯管道的中斷執(zhí)行導致值類型返回值沒有賦值if (context.ProxyMethod.ReturnType != typeof(void)){if (context.ReturnValue == null && context.ProxyMethod.ReturnType.IsValueType){// 為值類型返回值設(shè)置默認值作為返回值context.ReturnValue = Activator.CreateInstance(context.ProxyMethod.ReturnType);}} }

More

以上基本可以實現(xiàn)一個 AOP 功能,但是從擴展性以及功能上來說都還比較欠缺,基于 Attribute 的方式固然可以實現(xiàn)功能,但是太不靈活,如果我要在一個無法修改的接口上的某一個方法做一個切面邏輯,顯然只使用 Attribute 是做不到的,還是 Fluent-API 的方式比較靈活。

像做一層 AOP 的抽象,切面邏輯通過 Fluent-API 的方式來注冊,大概的 API 可能是這樣的:

var settings = FluentAspects.For<ITestService>(); setting.PropertySetter(x=>x.TestProp).InterceptWith<TryInterceptor>().InterceptWith<TryInterceptor1>(); setting.Method(x=> x.Test2()).InterceptWith<TryInterceptor>().InterceptWith<TryInterceptor1>();

然后基于 AspectCore 和 Castle.Core 來實現(xiàn)具體的 AOP 功能,暫時先想一下,爭取盡快的發(fā)布一個基本可用的版本,然后之前基于 EF Core 的自動審計也可以基于 AOP 來實現(xiàn)了,這樣就不需要顯示繼承 AuditDbContext 了~

文章所有源碼可以在 Github 上獲取到,Github 地址:https://github.com/WeihanLi/SamplesInPractice/tree/master/AopSample

Reference

  • 讓 .NET 輕松構(gòu)建中間件模式代碼

  • 讓 .NET 輕松構(gòu)建中間件模式代碼--支持中間件管道的中斷和分支

  • NET 下基于動態(tài)代理的 AOP 框架實現(xiàn)揭秘

  • EF Core 數(shù)據(jù)變更自動審計設(shè)計

  • AopSample

  • AspectCore

總結(jié)

以上是生活随笔為你收集整理的实现一个基于动态代理的 AOP的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

欧美一级xxxx | 日韩av一区在线观看 | 国产精品美女久久久网av | 久久免费成人网 | 激情网五月 | 国产一区二区观看 | 成人黄色在线视频 | av黄色在线观看 | 国产精品一区二区美女视频免费看 | 亚洲精品在线免费 | 欧美日韩精品在线一区二区 | 久久免费国产 | 亚洲 欧美 综合 在线 精品 | 日韩精品五月天 | 精品一区二区三区四区在线 | 亚洲一级片 | 美女久久久久 | 四虎影视成人永久免费观看亚洲欧美 | 国产自制av | 亚洲精品福利在线 | 欧洲精品久久久久毛片完整版 | 亚洲国产三级 | 久久成人久久 | 男女日麻批 | 综合色中色 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 久久精品免费 | 国产精品99久久久精品免费观看 | 午夜少妇一区二区三区 | 精品视频123区在线观看 | 亚洲黑丝少妇 | 国产亚洲aⅴaaaaaa毛片 | 午夜久久视频 | 二区三区在线视频 | 日韩高清片 | 在线激情网| 九色在线视频 | 精品在线视频观看 | 亚洲精品videossex少妇 | 五月婷婷综| 久久国产91 | 久久99久久99精品免观看软件 | 激情视频久久 | 亚洲精品天天 | 91porny九色在线播放 | 久久免费看毛片 | 亚洲综合一区二区精品导航 | 成人免费在线观看入口 | 很黄很污的视频网站 | 日日碰狠狠躁久久躁综合网 | 九九九热精品免费视频观看 | 亚洲午夜精品在线观看 | 丁香影院在线 | 婷婷福利影院 | 国产精品久久久久三级 | 国产精品毛片一区 | 在线观看亚洲 | 亚洲一区不卡视频 | 99精品欧美一区二区三区黑人哦 | 国产午夜小视频 | 久久精品国产一区二区三区 | 青青草国产精品视频 | 精品在线观看一区二区 | 日本资源中文字幕在线 | 亚洲精品国产视频 | 天天色成人 | 91精品国产综合久久婷婷香蕉 | 中文亚洲欧美日韩 | av在线电影播放 | 在线观看日韩一区 | 久草视频中文在线 | 91最新视频 | 成人a级黄色片 | 午夜aaaa| 中文字幕在线观看网址 | 黄色国产区 | 国产亚洲视频中文字幕视频 | 久久国产免费 | 久热这里有精品 | 国产精品麻豆视频 | 六月激情久久 | 国产中文字幕在线 | 欧美日韩国产网站 | 激情av一区二区 | 91精品人成在线观看 | 在线免费黄色av | 中文字幕亚洲在线观看 | 综合色播| 免费看污片 | 天天操天天色天天射 | 波多野结衣一区二区三区中文字幕 | 亚洲欧洲精品一区二区精品久久久 | 精品超碰| 久久国色夜色精品国产 | 亚洲成人高清在线 | 青春草视频 | 日日爱夜夜爱 | 日韩av在线免费播放 | 亚洲精品乱码久久久久久蜜桃欧美 | 一区二区三区四区精品 | 亚洲欧美国产日韩在线观看 | 91手机在线看片 | 亚洲精品视频在线免费播放 | 狠狠干我 | 国产女做a爱免费视频 | 手机看片1042| 视频在线在亚洲 | 精品国产精品久久 | 久久亚洲婷婷 | 国产精品久久久久久久99 | 日韩高清免费在线 | 97超级碰碰 | 九九热视频在线 | 草久在线观看 | 国内少妇自拍视频一区 | 久久夜色精品国产欧美乱 | 少妇av网 | 精品中文字幕在线播放 | 久久成人资源 | 亚洲精品综合在线观看 | 丝袜美腿亚洲综合 | 亚洲va在线va天堂 | 97在线超碰| 在线观看你懂的网址 | 91精品资源| 最新av网址在线观看 | 狠狠干天天射 | 91亚洲国产成人 | www.综合网.com | 日韩中文字幕国产 | 亚洲国产手机在线 | 狠狠躁日日躁狂躁夜夜躁av | 在线va网站 | 三级av在线| 久久精品欧美一 | 国产91精品一区二区绿帽 | 欧美福利视频 | 91黄色小网站 | 欧美激情精品 | 欧美日韩视频网站 | 亚洲国产小视频在线观看 | 日韩成片| 日韩中文字幕91 | 欧美精品二区 | 精品一区二区免费视频 | 99在线免费视频 | 成人免费看片网址 | 91免费视频网站在线观看 | 国产天天爽 | 欧美色综合天天久久综合精品 | 日韩二区在线观看 | 2019中文最近的2019中文在线 | 久久久久久久18 | 蜜臀久久99静品久久久久久 | 九九免费在线看完整版 | 日韩精品中文字幕有码 | 国外成人在线视频网站 | 亚洲国产一二三 | 日韩欧在线 | 成人av观看 | 怡红院成人在线 | 久久香蕉国产精品麻豆粉嫩av | 欧美日韩xx | 久久成人国产精品一区二区 | 亚洲激情视频在线 | 日韩免费区| 国产高清在线免费 | 黄色的视频网站 | 成年人在线观看视频免费 | 亚洲综合在线五月天 | 婷婷丁香社区 | 99re在线视频观看 | 日韩精品影视 | 在线观看91精品国产网站 | 久久久国产精品久久久 | 天天看天天干天天操 | 亚洲一级性 | 国产经典av| av成人免费在线观看 | 国产精品wwwwww | 天天插夜夜操 | 在线国产一区二区三区 | 精品亚洲欧美一区 | 日韩在线视频线视频免费网站 | 国产成人一区二区三区影院在线 | 国产精品久久久久久久久久免费看 | 91天堂素人约啪 | 丁香花在线观看免费完整版视频 | 成人黄色一级视频 | 伊人成人激情 | 欧美视频在线观看免费网址 | 日韩av一卡二卡三卡 | 亚洲精品视 | 欧美综合久久 | 亚洲国产精品人久久电影 | 婷婷六月中文字幕 | a级国产片 | 欧美大片aaa| 久久99精品热在线观看 | 91黄色在线看 | 黄色亚洲片 | 国产精品大片免费观看 | 欧美日韩成人一区 | 蜜臀av在线一区二区三区 | 国内综合精品午夜久久资源 | 99视频精品免费观看, | 成人超碰在线 | 欧洲激情在线 | 亚洲精品黄色在线观看 | 国产免费人成xvideos视频 | 国产裸体视频网站 | 久久人人爽人人 | 天堂网中文在线 | av五月婷婷 | 日韩中文在线视频 | 国产欧美综合视频 | 中文久草| 精品久久久久久久久中文字幕 | 国精产品999国精产品视频 | 国产视频一区二区在线播放 | 波多野结衣电影久久 | 一区二区三区在线免费观看 | 国产 欧美 在线 | 午夜12点| 免费99视频 | 超碰免费在线公开 | 国产99区| 久久综合影视 | 国产福利免费在线观看 | 99热精品久久 | 日本公妇色中文字幕 | 亚洲精品a区| 一区二区精品在线视频 | 国产黄网站在线观看 | 天堂在线一区二区三区 | 黄色特级片 | 久久精品99国产精品 | 麻豆 videos | 久久久久久久久久亚洲精品 | 精品国产日本 | 国产精品久久久久久久久久久久久久 | 91久久精品一区 | a'aaa级片在线观看 | 久久免费在线视频 | 国产精品视频线看 | 亚洲成人资源在线观看 | 中文字幕在线中文 | 欧美日韩在线免费观看视频 | 久久久久观看 | 91精品啪啪 | 久久久国产影院 | av福利第一导航 | 欧美精品网站 | 久久精品国产一区 | 在线只有精品 | 亚洲成人资源在线观看 | 婷婷伊人五月天 | 日韩精品在线一区 | 日韩av影视在线 | 亚洲春色综合另类校园电影 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 国产女教师精品久久av | 国产1区在线 | 成年人在线看片 | 国产成视频在线观看 | av在线直接看 | 最近日韩免费视频 | 亚洲一区二区视频 | 四虎伊人 | 西西www4444大胆视频 | 国产 日韩 在线 亚洲 字幕 中文 | 色婷婷丁香| 久久午夜影院 | 午夜精品视频免费在线观看 | 99热最新地址 | 国产精品手机看片 | 久久午夜精品影院一区 | 国产剧情在线一区 | 激情综合网五月激情 | 久久精品一区二区三 | 久久久69| 日韩有码第一页 | 日韩精品一区二区免费视频 | 免费在线观看黄 | 欧美日韩大片在线观看 | 精品欧美日韩 | 国产精品久久久久毛片大屁完整版 | 亚洲精品久久久久中文字幕m男 | 国产剧情在线一区 | 99av国产精品欲麻豆 | 欧美片一区二区三区 | 国产精品一区二区免费看 | 成人午夜精品福利免费 | 最近免费中文字幕大全高清10 | 日韩欧美在线中文字幕 | 亚洲区视频在线观看 | 免费看国产a | 波多野结衣最新 | 国产精品1024 | 国内一区二区视频 | 亚洲成人999 | 欧美韩国日本在线观看 | 99高清视频有精品视频 | 丁香花在线观看视频在线 | 日韩精品欧美一区 | 黄色网址中文字幕 | 黄色一级在线免费观看 | 最新av在线网址 | 91免费观看 | 欧美日本不卡视频 | 午夜精品一区二区三区视频免费看 | 在线观看视频中文字幕 | 国产亚洲免费的视频看 | 欧美久久久久久久久久久 | 久久亚洲免费 | 亚洲综合日韩在线 | 日韩高清在线不卡 | 九九色在线观看 | 激情网在线视频 | 欧美资源在线观看 | 精品国产综合区久久久久久 | 日本中文字幕高清 | 精品一区二区久久久久久久网站 | 久久久久久久久久久久久久电影 | 不卡电影免费在线播放一区 | 久久综合99 | 激情深爱五月 | 夜夜躁日日躁狠狠躁 | 亚州精品国产 | 日韩精品不卡在线观看 | 亚洲黄色区 | 亚洲狠狠婷婷综合久久久 | 免费国产在线精品 | 欧美国产日韩在线视频 | 日日日干| 日韩中文免费视频 | 亚州人成在线播放 | 久久亚洲二区 | 女人18精品一区二区三区 | 三级av网 | 999抗病毒口服液 | 免费看特级毛片 | 亚a在线 | 激情综合五月天 | 欧美成人免费在线 | 精品久久毛片 | 国产黄色av网站 | 成人国产精品久久久春色 | 国产理伦在线 | 久久久国产精品成人免费 | 久久综合之合合综合久久 | 成片免费观看视频 | 久久不见久久见免费影院 | 久久亚洲福利视频 | 这里只有精彩视频 | 香蕉视频在线网站 | 97成人资源站 | 91精品国产综合久久福利 | 久久手机视频 | 久日精品 | 91超碰免费在线 | 天天插综合网 | 免费91麻豆精品国产自产在线观看 | 色国产精品一区在线观看 | 国产99久久久久 | 午夜123| 69国产盗摄一区二区三区五区 | 亚洲国内精品在线 | 亚洲精品国产精品国 | 国产在线欧美日韩 | 久久久国产成人 | av在线8 | 国产成人久久久77777 | 69精品人人人人 | 精品国产91亚洲一区二区三区www | 在线日韩一区 | 亚洲91在线 | 国产精品淫 | 亚洲成人午夜在线 | 亚洲精品国产精品国自 | 91在线视频免费 | 日本久久精品视频 | 国产视频资源在线观看 | 日韩在线观看免费 | 在线观看日韩国产 | 午夜视频在线观看欧美 | 日韩av影片在线观看 | 日日操操操 | 黄色av电影免费观看 | av免费电影网站 | 国产私拍在线 | 少妇性bbb搡bbb爽爽爽欧美 | 国产精品久久久久久久久久白浆 | 97人人添人澡人人爽超碰动图 | 国产精品k频道 | 国产精品九九九九九九 | 免费成人在线网站 | 国产在线无 | 久久夜视频 | 亚洲妇女av | 看片一区二区三区 | 国产一级电影 | 亚洲日本中文字幕在线观看 | 美女视频又黄又免费 | 国产中文在线观看 | 在线观看中文字幕2021 | 久久综合狠狠综合 | 国产无吗一区二区三区在线欢 | 久草在线在线精品观看 | 91在线视频观看 | 国产精品一区二区三区久久久 | 国产精品一区二区果冻传媒 | 国产精品mm | 欧美性生活免费看 | 伊人www22综合色 | 亚洲精品久久久久中文字幕二区 | 久久久久久久久精 | 在线观看国产日韩欧美 | 亚洲成人免费 | 在线观看亚洲成人 | 日韩欧美在线高清 | 91丨精品丨蝌蚪丨白丝jk | 色五月成人 | 97超碰免费在线 | 国产成人精品一区二 | 久久伦理电影 | 亚洲精品中文在线资源 | 色就干| 亚洲午夜精品久久久久久久久 | 一区二区三区精品久久久 | 国产精品久久久久久久久久尿 | 成人久久久久久久久 | 久久不卡国产精品一区二区 | 国产高清视频免费 | 亚洲激情五月 | 久久草 | 最近2019年日本中文免费字幕 | 黄色小说在线免费观看 | 婷婷色5月| 天天干天天操av | 特级黄色视频毛片 | 日韩精品在线免费观看 | 色综合天天狠狠 | 97精品国产一二三产区 | 国外成人在线视频网站 | a久久久久| 五月婷婷在线观看视频 | 91精品国产欧美一区二区 | 在线免费观看黄 | 在线观看免费黄视频 | 久久久视频在线 | 免费观看的黄色片 | 中文字幕视频播放 | 五月天婷婷在线播放 | www.色国产 | 久久综合五月天婷婷伊人 | 免费在线观看成人小视频 | 美女免费视频一区二区 | 中文在线字幕观看电影 | 天堂资源在线观看视频 | 99久久综合狠狠综合久久 | 91视频免费看网站 | 二区三区精品 | 亚洲资源视频 | 成人免费视频网站在线观看 | 91精品一区二区三区久久久久久 | 午夜美女网站 | 日韩精品免费专区 | 91精品国产综合久久福利不卡 | 97在线视频免费 | 最新91在线视频 | 日韩成人高清在线 | 美女视频是黄的免费观看 | 超碰97中文| 久久99热这里只有精品 | 国产黄色免费 | 日韩欧美高清不卡 | 久久综合毛片 | 视频精品一区二区三区 | 热久精品| 久久久久97国产 | 久久视精品 | 久久精品日韩 | 日韩欧美在线不卡 | 国内精品久久久久 | 日韩成人一级大片 | 亚洲午夜av久久乱码 | 夜夜操天天摸 | 免费精品久久久 | 国产精品视频你懂的 | 日本精品小视频 | 91成人网在线 | 国产精品久久久久久久妇 | 中文字幕色在线 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 免费热情视频 | 久久精品国产成人 | av丝袜在线 | 日韩一区正在播放 | 91福利视频在线 | 成年人黄色免费看 | 人人干人人干人人干 | 五月婷婷激情网 | 久久不卡视频 | 伊人久久av| 国产破处在线播放 | 亚洲免费a | 在线观看久久 | 波多野结衣在线视频免费观看 | 久久久亚洲电影 | 成人午夜剧场在线观看 | 亚洲高清视频一区二区三区 | 九九久久久久久久久激情 | 国产又粗又猛又爽又黄的视频免费 | 亚洲精品国产精品乱码不99热 | 欧美一区二区在线免费观看 | 欧美日韩中文在线视频 | 激情丁香5月| 久久成年人视频 | 久久99国产视频 | 国产美女免费视频 | 久久精品国产亚洲a | 国内精品视频在线 | 精品国产一区二区三区噜噜噜 | 午夜国产福利视频 | 天堂av在线网站 | 狠狠色婷婷丁香六月 | 91丨九色丨勾搭 | 国产精美视频 | 久久久国产精品免费 | 丁香九月婷婷 | 91高清视频在线 | 午夜久久久久久久久久影院 | 成人av影视在线 | 久久精品中文字幕少妇 | 干狠狠| 三级黄色在线 | 超碰97免费观看 | 日韩在线激情 | 91传媒在线观看 | 久久国产二区 | 99精品久久久久久久久久综合 | 亚洲精品av中文字幕在线在线 | 日韩欧美aaa| 国产精品区二区三区日本 | 亚洲欧美国产视频 | 一区二区av | 中文av日韩| 最近免费中文字幕 | av成人动漫 | 色婷婷国产精品一区在线观看 | 丁香5月婷婷 | 热久久这里只有精品 | 久久久久久久久爱 | 超碰在线观看97 | 久久福利国产 | 日本女人b | 免费观看久久 | 草久久精品 | 国产成人黄色av | 精品亚洲va在线va天堂资源站 | 久久神马影院 | 亚洲欧美国内爽妇网 | 国产精品综合久久 | 国产精品都在这里 | 国产中文| 91理论电影 | 伊人官网 | 日韩高清在线观看 | 日韩理论片在线 | www.国产在线视频 | 精品免费在线视频 | 欧美巨大 | 国产高清免费视频 | 婷婷六月天在线 | 91亚洲欧美激情 | 婷婷性综合 | 亚洲最大av网 | 久久久国产电影 | 黄色成人毛片 | h网站免费在线观看 | 97在线免费观看 | 免费久久99精品国产婷婷六月 | 中文字幕 婷婷 | 97国产在线视频 | 欧美一级视频免费看 | 久久私人影院 | 日韩激情三级 | 亚洲高清不卡av | 久久九九视频 | 99久久99视频| 亚洲自拍偷拍色图 | 免费看的黄色录像 | 91麻豆国产福利在线观看 | 午夜天使| 欧美成人tv | 五月婷婷,六月丁香 | 日韩网站一区 | 美女视频黄的免费的 | 国产成人久久精品一区二区三区 | 日本中文在线 | 国产亚洲精品久久久久久久久久 | 久久免费99| 日韩免费在线观看 | 精品视频 | 欧美污在线观看 | 色综合www | 91精品一区在线观看 | 国产网站在线免费观看 | 99热最新精品 | 久草在 | 国产视频久久 | 超碰人人在| 99re8这里有精品热视频免费 | 一区二区视频免费在线观看 | 一区二区三区在线观看免费 | 日韩高清网站 | 国产高清免费在线观看 | 人人干97| 亚洲第五色综合网 | 91精品视频免费在线观看 | 手机看片久久 | 中文字幕一区2区3区 | 国产精品福利在线播放 | 国产精品99久久免费黑人 | 久久亚洲成人网 | 亚洲欧美日韩在线一区二区 | 国产精品视频免费观看 | 天天伊人狠狠 | 91精品老司机久久一区啪 | 日女人免费视频 | 国产视频一区二区在线播放 | 中文字幕在线观看完整版 | 国产女人40精品一区毛片视频 | 91香蕉视频 | 超碰99人人 | 在线观看成人网 | 国产精品2019| 久久久久国产精品www | 亚洲91精品 | www色综合 | 欧美久久久久久久久 | 日韩中文字幕免费视频 | 亚洲精品一区二区三区新线路 | 亚洲色图色 | 精品国内自产拍在线观看视频 | 精品99久久| 最新午夜 | 国产精品手机在线 | 日韩在线电影观看 | 天天射天天干天天操 | 国产喷水在线 | 欧洲色吧 | 免费十分钟 | 亚洲一级影院 | 久久久久久国产精品亚洲78 | 色综合色综合久久综合频道88 | 亚洲精品成人网 | 男女啪啪免费网站 | 91精品国产成人www | 欧美在线观看视频一区二区三区 | 国产一二区免费视频 | 99免费在线视频 | 久久99国产精品久久99 | 夜夜躁日日躁狠狠久久av | 日韩欧美国产成人 | 国产视频在线播放 | 亚洲高清视频一区二区三区 | 91久久偷偷做嫩草影院 | 久久尤物电影视频在线观看 | 天天天天爽 | 奇米影视777四色米奇影院 | 色视频 在线 | 久久99最新地址 | 久久久精品久久日韩一区综合 | 久久精品一区二 | 青草视频网| 亚洲高清不卡av | 日韩视频中文 | 一区二区三区四区在线免费观看 | 成人福利av | 亚洲一区在线看 | 日日麻批40分钟视频免费观看 | 欧美性黑人 | 亚洲a成人v | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 毛片网在线| 久久一线 | 日韩欧美69| 免费观看性生交大片3 | 97超碰色| 免费成人av在线 | 嫩草av在线| 国产高清av免费在线观看 | 青青久草在线 | 欧美日韩一区二区三区视频 | 欧美日韩精品在线观看视频 | 99精品在线视频播放 | av高清一区二区三区 | 亚洲伊人第一页 | 69精品在线 | 97色在线观看免费视频 | 91资源在线观看 | 福利电影久久 | 色香蕉在线 | 欧美日韩亚洲第一 | 日韩欧美高清不卡 | 在线 视频 一区二区 | 在线观看完整版免费 | 天天操操操操操操 | 超碰国产在线播放 | 久久久国产精品一区二区三区 | 911亚洲精品第一 | 久久国产精品久久w女人spa | 久久久久久蜜av免费网站 | 亚洲精品免费在线观看 | 亚洲视频在线观看免费 | 手机看片午夜 | 色资源网在线观看 | 国产亚洲久一区二区 | 国产麻豆剧果冻传媒视频播放量 | 国产区久久 | 色在线亚洲 | 国产黄a三级三级三级三级三级 | 午夜精品福利一区二区 | 久久久久久久久亚洲精品 | 激情五月婷婷丁香 | 久久综合狠狠综合 | 国产 精品 资源 | 精品久久久久亚洲 | 久久精品视频在线免费观看 | 黄色影院在线播放 | 五月婷婷丁香网 | 五月婷婷丁香在线观看 | 久久综合九色综合欧美就去吻 | 久久精品欧美一区二区三区麻豆 | 国产一区二区影院 | 欧美日韩视频在线一区 | 国产免费嫩草影院 | 亚洲欧美视频在线观看 | a黄色片在线观看 | 国产精品美女久久久久久久久久久 | 久草在线免费资源站 | 国产精品成人在线观看 | 国产精品18久久久 | 久久草在线精品 | 成人在线你懂得 | 成人黄色小说网 | 婷婷六月在线 | 香蕉视频国产在线观看 | 亚洲一区黄色 | 五月精品 | 视频一区二区精品 | 久久精品视频2 | 97电影在线观看 | 在线视频18在线视频4k | 大片网站久久 | 国产香蕉视频在线观看 | 天天搞天天干天天色 | 91av手机在线 | 久操伊人 | 久草精品视频在线观看 | 久久久久久高清 | 成人在线电影观看 | 成人97人人超碰人人99 | 91在线看黄| 伊人久久婷婷 | 久久激情综合 | 婷婷色在线观看 | 99r在线精品 | 永久精品视频 | 久久久五月婷婷 | 天天摸夜夜添 | 久久久久久久久久久网 | 六月色丁 | 亚洲成av人片在线观看无 | 九九九九九九精品任你躁 | 国产淫片免费看 | 国产小视频在线播放 | www一起操| 国产毛片久久久 | 西西444www大胆高清视频 | 99久久精品国产欧美主题曲 | 久久超级碰| 国产在线超碰 | 国产精品久久久久久久久久妇女 | 免费aa大片 | 中文字幕免费高清 | 国产成人一级电影 | 97在线免费视频 | 免费国产在线观看 | 国产精品18久久久久久久久 | 国产精品久久久久aaaa | 久草久热 | 91你懂的| 97碰碰精品嫩模在线播放 | 欧美激情视频一区 | 99免费在线视频 | 久久婷婷精品视频 | 色婷婷www | 区一区二区三在线观看 | 91av中文 | 超薄丝袜一二三区 | 亚洲国产精品女人久久久 | avwww在线| 欧美一区二区三区在线观看 | 久久黄色a级片 | 成人免费ⅴa| 欧美日韩伦理在线 | 国产精品久久久久久久久久妇女 | 日韩在线免费观看视频 | 久久综合婷婷 | 欧美成人影音 | 国产 欧美 日本 | 九九视频精品免费 | 国产打女人屁股调教97 | 国产精品午夜av | 久日精品 | 精品国产免费久久 | 一级a性色生活片久久毛片波多野 | 人人澡视频 | 国内揄拍国内精品 | 五月天久久综合网 | 日日夜夜天天干 | 日韩精品久久久 | 操操综合 | 亚洲人毛片 | 亚洲免费观看在线视频 | 国内免费的中文字幕 | 天天亚洲 | 午夜久久久影院 | 夜夜高潮夜夜爽国产伦精品 | 国产91在线播放 | av福利网址导航 | 亚洲午夜精品久久久久久久久 | 久久三级视频 | 色婷婷精品 | 又黄又刺激又爽的视频 | 成人午夜电影在线观看 | 久久中文字幕在线视频 | 中文字幕在线一区观看 | 亚洲国产精品传媒在线观看 | 欧美有色 | 超碰97久久 | 99精品热视频 | 激情久久久久久久久久久久久久久久 | 色av色av色av| 亚洲综合激情小说 | 99热日本 | 国产精品美女久久久久久 | 国产高清在线不卡 | 国产午夜三级一区二区三桃花影视 | 高清av不卡 | 免费看的视频 | 国产精品日韩欧美一区二区 | 久久69精品| 欧美91成人网 | 97av.com| 精品亚洲一区二区 | 91精品国产综合久久婷婷香蕉 | 国产成人精品av久久 | 国内丰满少妇猛烈精品播 | 国产经典av | 久久久久久久久久久高潮一区二区 | 免费久草视频 | 亚洲精品久久久久久久不卡四虎 | 久久8精品 | 一区电影 | 国产成人一区二区三区 | 在线精品视频免费播放 | 丁香婷婷激情国产高清秒播 | 国产精品青草综合久久久久99 | 国产中文字幕网 | 在线中文字母电影观看 | 国产精品久久99综合免费观看尤物 | 91久久精品日日躁夜夜躁国产 | 亚洲国产精品激情在线观看 | 99热精品在线 | 亚洲视频 视频在线 | 日三级在线| 一区免费视频 | 亚洲欧美成人综合 | 人人干人人草 | 成人毛片100免费观看 | 久久99热精品这里久久精品 | 国产做爰视频 | 国产精品对白一区二区三区 | 一区在线播放 | 四虎最新域名 | 久久国产网站 | 在线视频1卡二卡三卡 | 亚洲免费公开视频 | 免费观看一区二区三区视频 | 国产剧情一区在线 | 亚洲午夜精品久久久久久久久久久久 | 国产色小视频 | 九九日韩 | 91插插插免费视频 | 亚洲第一中文字幕 | 日韩影视在线 | 深爱激情五月综合 | 天天操天天操天天操 | 视频在线观看一区 | 国产日产精品一区二区三区四区的观看方式 | 久久久久国产精品一区 | 婷婷国产精品 | 婷婷国产一区二区三区 | 不卡精品 | 久久久久免费看 | 中文字幕丰满人伦在线 | 亚洲精品国产拍在线 | 最近最新最好看中文视频 | 亚洲九九九 | 亚洲伊人婷婷 | 欧美少妇xxxxxx | 中文字幕乱码亚洲精品一区 | 国产成人精品一区在线 | 91亚洲在线观看 | 97视频免费播放 | 日本精品一区二区 | 免费看的黄网站 | 婷婷网五月天 | 香蕉影视在线观看 | 手机av观看 | 国产精品久久久久久吹潮天美传媒 | 天天操天天添天天吹 | 91视频 - 88av | 亚洲黄色免费在线看 | 96久久久| 成人免费视频网站在线观看 | 黄色一级在线免费观看 | 99精品视频在线免费观看 | 免费黄色小网站 | 96av麻豆蜜桃一区二区 | 日韩欧美精品一区二区三区经典 | 日韩欧美在线一区二区 | 午夜.dj高清免费观看视频 | av大全在线免费观看 | 欧美黑人猛交 | 久久精品国产99 | 99这里只有 | 天天草综合 | a视频免费 | 天堂网一区 | 国产一区视频在线观看免费 | av 在线观看 | 久久视频中文字幕 | 欧美精品在线一区 | 三级在线国产 | 国产精品久久久久久电影 | 国产高清无av久久 | 久草新在线 | a在线观看国产 | 国产亚洲va综合人人澡精品 | 日韩久久精品一区二区三区 | 国产色视频网站2 | 国产特级毛片 | 又黄又爽的免费高潮视频 | 欧美精品在线一区二区 | 天天综合入口 | 五月天av在线 | 亚洲午夜久久久久久久久 | 久久视频这里只有精品 | 色综合久久精品 | 国产精品久久久久久模特 | 亚洲日本激情 | 手机看片1042 | 国产高清视频免费在线观看 | 狠狠色免费 | 综合国产在线观看 | 中文字幕久久网 | 国产精品一区二区久久精品 | 久久婷婷精品视频 | 久久综合狠狠综合久久综合88 | 国产精品免费久久久久影院仙踪林 | 成人av在线观 | 天天躁天天躁天天躁婷 | 久久精品视频观看 | .国产精品成人自产拍在线观看6 | 人人草网站 | 四虎国产精 | 免费观看特级毛片 | 不卡的av | 色网站在线免费 | 2018亚洲男人天堂 | 国产 精品 资源 | 手机成人免费视频 | 亚洲成人中文在线 | 亚洲美女免费精品视频在线观看 | 日韩黄色免费看 | 国产精品中文字幕av | 欧美日韩观看 | av资源免费在线观看 | 天天干夜夜操视频 | 日韩免费电影网 | 久久在线免费观看 | 天天色天天综合 | 国产精品一区欧美 |