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

歡迎訪問 生活随笔!

生活随笔

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

asp.net

浅谈.Net Core DependencyInjection源码探究

發布時間:2023/12/4 asp.net 85 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅谈.Net Core DependencyInjection源码探究 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

對于IOC和DI,可能每個人都能說出自己的理解。IOC全稱是Inversion of Control翻譯成中文叫控制反轉,簡單的說就是把對象的控制權反轉到IOC容器中,由IOC管理其生命周期。DI全稱是DependencyInjection翻譯成中文叫依賴注入,就是IOC容器把你依賴的模塊通過注入的方式提供給你,而不是你自己主動去獲取,其形式主要分為構造注入和屬性注入,Core自帶的DI只支持構造注入,至于為什么,最多的說法就是構造注入能使得依賴變得更清晰,我既然依賴你,那么我實例化的時候你就必須得出現。而構造函數恰恰就承擔著這種責任。

簡單介紹

????很多人接觸它的時候應該都是從Asp.Net Core學習過程中開始的。其實它本身對Asp.Net Core并無依賴關系,Asp.Net Core依賴DI,但是這套框架本身并不只是可以提供給Asp.Net Core使用,它是一套獨立的框架,開源在微軟官方Github的extensions倉庫中具體地址是https://github.com/dotnet/extensions/tree/v3.1.5/src/DependencyInjection。關于如何使用,這里就不再多說了,相信大家都非常清楚了。那咱們就說點不一樣的。

服務注冊

我們都知道提供注冊的服務名稱叫IServiceCollection,我們大部分情況下主要使用它的AddScoped、AddTransient、AddSingleton來完成注冊。我們就先查看一下IServiceCollection接口的具體實現,找到源碼位置

public interface IServiceCollection : IList<ServiceDescriptor> { }

(⊙o⊙)…額,你并沒有看錯,這次我真沒少貼代碼,其實IServiceCollection本質就是IList,而且并沒有發現AddScoped、AddTransient、AddSingleton蹤影,說明這幾個方法是擴展方法,我們找到ServiceCollectionServiceExtensions擴展類的位置,我們平時用的方法都在這里,由于代碼非常多這里就不全部粘貼出來了,我們只粘貼AddTransient相關的,AddScoped、AddSingleton的實現同理

/// <summary> /// 通過泛型注冊 /// </summary> public static IServiceCollection AddTransient<TService, TImplementation>(this IServiceCollection services)where TService : classwhere TImplementation : class, TService {if (services == null){throw new ArgumentNullException(nameof(services));}//得到泛型類型return services.AddTransient(typeof(TService), typeof(TImplementation)); }/// <summary> /// 根據類型注冊 /// </summary> public static IServiceCollection AddTransient(this IServiceCollection services,Type serviceType,Type implementationType) {if (services == null){throw new ArgumentNullException(nameof(services));}if (serviceType == null){throw new ArgumentNullException(nameof(serviceType));}if (implementationType == null){throw new ArgumentNullException(nameof(implementationType));}return Add(services, serviceType, implementationType, ServiceLifetime.Transient); }/// <summary> /// 根據類型實例來自工廠注冊方法 /// </summary> public static IServiceCollection AddTransient(this IServiceCollection services,Type serviceType,Func<IServiceProvider, object> implementationFactory) {if (services == null){throw new ArgumentNullException(nameof(services));}if (serviceType == null){throw new ArgumentNullException(nameof(serviceType));}if (implementationFactory == null){throw new ArgumentNullException(nameof(implementationFactory));}return Add(services, serviceType, implementationFactory, ServiceLifetime.Transient); }

通過以上代碼我們可以得到兩個結論,一是注冊服務的方法本質都是在調用Add重載的兩個方法,二是聲明周期最終還是通過ServiceLifetime來控制的AddScoped、AddTransient、AddSingleton只是分文別類的進行封裝而已,我們來看ServiceLifetime的源碼實現

public enum ServiceLifetime {/// <summary>/// 指定將創建服務的單個實例。/// </summary>Singleton,/// <summary>/// 指定每個作用域創建服務的新實例。/// </summary>Scoped,/// <summary>/// 指定每次請求服務時都將創建該服務的新實例。/// </summary>Transient }

這個枚舉是為了枚舉我們注冊服務實例的聲明周期的,非常清晰不在過多講述,接下來我們看核心的兩個Add方法的實現

private static IServiceCollection Add(IServiceCollection collection,Type serviceType,Type implementationType,ServiceLifetime lifetime) {var descriptor = new ServiceDescriptor(serviceType, implementationType, lifetime);collection.Add(descriptor);return collection; }private static IServiceCollection Add(IServiceCollection collection,Type serviceType,Func<IServiceProvider, object> implementationFactory,ServiceLifetime lifetime) {var descriptor = new ServiceDescriptor(serviceType, implementationFactory, lifetime);collection.Add(descriptor);return collection; }

通過這兩個核心方法我們可以非常清晰的了解到注冊的本質其實就是構建ServiceDescriptor實例然后添加到IServiceCollection即IList中,這里我們都是列舉的根據實例去注冊抽象的類型,還有一種是只注冊具體類型或者具體實例的方法,這個是怎么實現的呢。

public static IServiceCollection AddTransient(this IServiceCollection services,Type serviceType) {if (services == null){throw new ArgumentNullException(nameof(services));}if (serviceType == null){throw new ArgumentNullException(nameof(serviceType));}//把自己注冊給自己return services.AddTransient(serviceType, serviceType); }

通過這個方法我們就可以看到其實注冊單類型的方法,也是通過調用的注入實例到抽象的方法,只不過是將自己注冊給了自己。
好了,抽象和擴展方法我們就先說到這里,接下來我們來看IServiceCollection的實現類ServiceCollection的實現

public class ServiceCollection : IServiceCollection {private readonly List<ServiceDescriptor> _descriptors = new List<ServiceDescriptor>();public int Count => _descriptors.Count;public bool IsReadOnly => false;public ServiceDescriptor this[int index]{get{return _descriptors[index];}set{_descriptors[index] = value;}}public void Clear(){_descriptors.Clear();}public bool Contains(ServiceDescriptor item){return _descriptors.Contains(item);}public void CopyTo(ServiceDescriptor[] array, int arrayIndex){_descriptors.CopyTo(array, arrayIndex);}public bool Remove(ServiceDescriptor item){return _descriptors.Remove(item);}public IEnumerator<ServiceDescriptor> GetEnumerator(){return _descriptors.GetEnumerator();}void ICollection<ServiceDescriptor>.Add(ServiceDescriptor item){_descriptors.Add(item);}IEnumerator IEnumerable.GetEnumerator(){return GetEnumerator();}public int IndexOf(ServiceDescriptor item){return _descriptors.IndexOf(item);}public void Insert(int index, ServiceDescriptor item){_descriptors.Insert(index, item);}public void RemoveAt(int index){_descriptors.RemoveAt(index);} }

這個類就非常清晰,也非常簡單了。ServiceCollection承載了一個List的集合,由于實現了IList接口,所以該類實現了接口的方法,實現了對List集合的操作,其核心就是ServiceDescriptor服務描述類,我們看一下大致的源碼。

public class ServiceDescriptor {public ServiceDescriptor(Type serviceType,Type implementationType,ServiceLifetime lifetime): this(serviceType, lifetime){ImplementationType = implementationType;}public ServiceDescriptor(Type serviceType,object instance): this(serviceType, ServiceLifetime.Singleton){ImplementationInstance = instance;}public ServiceDescriptor(Type serviceType,Func<IServiceProvider, object> factory,ServiceLifetime lifetime): this(serviceType, lifetime){ImplementationFactory = factory;}private ServiceDescriptor(Type serviceType, ServiceLifetime lifetime){Lifetime = lifetime;ServiceType = serviceType;}public ServiceLifetime Lifetime { get; }public Type ServiceType { get; }public Type ImplementationType { get; }public object ImplementationInstance { get; }public Func<IServiceProvider, object> ImplementationFactory { get; } }

這里我們只是粘貼了初始化的方法,通過這個初始化我們得到了,本質其實就是給描述具體注冊的Lifetime、ServiceType、ImplementationType、ImplementationInstance、ImplementationFactory賦值。在平時的使用中,我們在注冊服務的時候還會用到這種注冊方式

services.Add(ServiceDescriptor.Scoped<IPersonService, PersonService>()); //services.Add(ServiceDescriptor.Scoped(typeof(IPersonService),typeof(PersonService))); //或 services.Add(ServiceDescriptor.Transient<IPersonService, PersonService>()); //services.Add(ServiceDescriptor.Transient(typeof(IPersonService), typeof(PersonService))); //或 services.Add(ServiceDescriptor.Singleton<IPersonService, PersonService>()); //services.Add(ServiceDescriptor.Singleton(typeof(IPersonService), typeof(PersonService)));

這種注冊方式是通過ServiceDescriptor自身的操作去注冊相關實例,我們拿出來其中一個Transient看一下具體實現

public static ServiceDescriptor Transient<TService, TImplementation>()where TService : classwhere TImplementation : class, TService {//都是在調用Describereturn Describe<TService, TImplementation>(ServiceLifetime.Transient); }public static ServiceDescriptor Transient(Type service, Type implementationType) {//都是在調用Describereturn Describe(service, implementationType, ServiceLifetime.Transient); }public static ServiceDescriptor Describe(Type serviceType, Type implementationType, ServiceLifetime lifetime) {//還是返回ServiceDescriptor實例return new ServiceDescriptor(serviceType, implementationType, lifetime); }public static ServiceDescriptor Describe(Type serviceType, Func<IServiceProvider, object> implementationFactory, ServiceLifetime lifetime) {//還是返回ServiceDescriptor實例return new ServiceDescriptor(serviceType, implementationFactory, lifetime); }

通過這個我們就可以了解到ServiceDescriptor.Scoped、ServiceDescriptor.Singleton、ServiceDescriptor.Singleton其實是調用的Describe方法,Describe的本身還是去實例化ServiceDescriptor,殊途同歸,只是多了種寫法,最終還是去構建ServiceDescriptor。通過這么多源碼的分析得出的結論就一點IServiceCollection注冊的本質就是在構建ServiceDescriptor集合。

服務提供

上面我們了解到了服務注冊相關,至于服務是怎么提供出來的,大家應該都是非常熟悉了其實是根據IServiceCollection構建出來的

IServiceProvider serviceProvider = services.BuildServiceProvider();

BuildServiceProvider并不是IServiceCollection的自帶方法,所以也是來自擴展方法,找到ServiceCollectionContainerBuilderExtensions擴展類,最終都是在執行這個方法

public static ServiceProvider BuildServiceProvider(this IServiceCollection services, ServiceProviderOptions options) {return new ServiceProvider(services, options); }

BuildServiceProvider的時候需要傳遞ServiceProviderOptions這個類主要是配置是否校驗作用域和提供的實例來自于那種提供引擎使用

public class ServiceProviderOptions {internal static readonly ServiceProviderOptions Default = new ServiceProviderOptions();/// <summary>/// 是夠在編譯的時候校驗作用域范圍檢查/// </summary>public bool ValidateScopes { get; set; }/// <summary>/// 是夠在編譯的時候校驗作用域范圍檢查/// </summary>public bool ValidateOnBuild { get; set; }/// <summary>/// 配置使用那種方式提供ServiceProvider的承載的具體實例/// </summary>internal ServiceProviderMode Mode { get; set; } = ServiceProviderMode.Default; }internal enum ServiceProviderMode {Default,Dynamic,Runtime,Expressions,ILEmit }

作用域范圍檢查還是非常嚴格的,不開啟的也會有一定的依賴規則,簡單總結一下

  • 如果開啟了范圍檢查,有依賴關系的模型如果生命周期不一致就會報錯,如果不存Scope聲明但是獲取AddScoped也是會有異常的

  • 如果不開啟范圍檢查,如果生命周期長的依賴生命周期短的,那么被依賴的模型將會被提升和依賴模型同等的生命周期。如果生命周期短的模型依賴生命周期長的模型,將保持和注冊時候的生命周期一致。

接下來我們查看一下服務提供核心IServiceProvider的實現,這個接口只包含一個抽象,那就是根據"注冊類型"獲取具體實例,其他獲取實例的方法都是根據這個方法擴展而來

public interface IServiceProvider {object GetService (Type serviceType); }

ServiceProvider是IServiceProvider的默認實現類,它是獲取注冊實例的默認出口類,我們只看提供服務相關的

public sealed class ServiceProvider : IServiceProvider, IDisposable, IServiceProviderEngineCallback, IAsyncDisposable {private readonly IServiceProviderEngine _engine;private readonly CallSiteValidator _callSiteValidator;internal ServiceProvider(IEnumerable<ServiceDescriptor> serviceDescriptors, ServiceProviderOptions options){IServiceProviderEngineCallback callback = null;if (options.ValidateScopes){callback = this;_callSiteValidator = new CallSiteValidator();}//根據ServiceProviderMode的值判斷才有那種方式去實例化對象switch (options.Mode){//默認方式case ServiceProviderMode.Default:if (RuntimeFeature.IsSupported("IsDynamicCodeCompiled")){_engine = new DynamicServiceProviderEngine(serviceDescriptors, callback);}else{_engine = new RuntimeServiceProviderEngine(serviceDescriptors, callback);}break;case ServiceProviderMode.Dynamic:_engine = new DynamicServiceProviderEngine(serviceDescriptors, callback);break;case ServiceProviderMode.Runtime:_engine = new RuntimeServiceProviderEngine(serviceDescriptors, callback);break;//if IL_EMITcase ServiceProviderMode.ILEmit:_engine = new ILEmitServiceProviderEngine(serviceDescriptors, callback);break;case ServiceProviderMode.Expressions:_engine = new ExpressionsServiceProviderEngine(serviceDescriptors, callback);break;default:throw new NotSupportedException(nameof(options.Mode));}//判斷是否開啟編譯時范圍校驗if (options.ValidateOnBuild){List<Exception> exceptions = null;foreach (var serviceDescriptor in serviceDescriptors){try{_engine.ValidateService(serviceDescriptor);}catch (Exception e){}}}}/// <summary>/// 通過IServiceProviderEngine獲取具體實例的方法/// </summary>public object GetService(Type serviceType) => _engine.GetService(serviceType); }

在這個類里,關于提供具體實例的操作還是非常清晰的,關于更深的IServiceProviderEngine這里就不過多介紹了,有興趣的可以自行在GitHub上查閱。

關于Scope問題

在聲明周期里Scope是比較特殊也是比較抽象的一個,我們使用的時候是通過當前serviceProvider創建子作用域

using (IServiceScope scope = serviceProvider.CreateScope()) {IServiceProvider scopeProvider = scope.ServiceProvider; }

它大概的思路就是在當前容器中創建一個作用域,scope.ServiceProvider來獲取這個子容器作用域里的實例。Singleton類型的實例直接去根容器獲取,所以和當前子容器作用域無關。Scoped類型的實例,在當前作用域內唯一,無論獲取多少次返回的都是同一個實例。Transient類型的只要去獲取都是返回新的實例。當前IServiceScope釋放的時候Scoped類型的實例也會被釋放,注意!!!Transient類型的實例也是在當前IServiceScope Dispose的時候去釋放,盡管你每次獲取的時候都是新的實例,但是釋放的時候都是統一釋放的。在當前ServiceScope內你可以繼續創建當前Scope的IServiceScope。其實通過這里也不難發現根容器的Scoped其實就是等同于Singleton,其生命周期都是和應用程序保持一致。
??? Scope問題在如果寫控制臺之類的程序其作用可能不是很明顯,除非有特殊的要求,在Asp.Net Core中使用還是比較深入的。Asp.Net Core在啟動的時候會創建serviceProvider,這個serviceProvider的Scope是跟隨程序的生命周期一致的,它是作為所有服務實例的根容器。在Asp.Net Core中有幾種情況的實例和請求無關也就是說在程序運行期間是單例情況的,我們使用的時候需要注意的地方

  • 通過Startup.cs的構造函數注入的IHostEnvironment、IWebHostEnvironment、IConfiguration

  • 在Startup.cs類中的Configure方法注入的

  • 使用約定方式自定義的中間件,是在程序初始化的時候被執行的所以根據約定方式定義的中間件的構造函數注入的也是單例的。

  • 使用約定方式自定義的中間件,是在程序初始化的時候被執行的所以根據約定方式定義的中間件的構造函數注入的也是單例的。

其實就一點,在程序初始化過程中創建的類大部分都是和請求無關的,通常這一類方法或者具體的實例注入的依賴都是和程序生命周期保持一致的,即單例模式。Asp.Net Core在每次處理請求的時候會在根容器創建一個Scope范圍的ServiceProvider,也就是我們所說的Asp.Net Core在每次請求過程中是唯一的情況。

  • 自定義實現了IMiddleware的中間件,且生命周期為Scoped的情況。

  • 中間件中Invoke或InvokeAsync注入的相關實例,且注冊的時候為Scoped的情況。

  • Controller中或者為Controller提供服務的相關類,比如EF SQLConnection或其他連接服務相關,或者自定義的Service等,且注冊的時候為Scoped的情況。?這里說明一點,默認情況下Controller并不是通過容器創建的,而是通過反射創建的。如果需要將Controller也托管到容器中,需要使用services.AddControllers().AddControllersAsServices()的方式,這個操作在使用Autofac容器的時候在Controller中使用屬性注入是必不可少的。

  • 還有就是通過Inject注冊到RazorPage視圖頁面中的情況。

關于UseServiceProviderFactory

UseServiceProviderFactory方法主要是為我們提供了替換默認容器的操作,通過這個方法可以將三方的IOC框架結合進來比如Autofac。我們可以查看UseServiceProviderFactory具體的實現,了解它的工作方式。這個方法來自HostBuilder類

public IHostBuilder UseServiceProviderFactory<TContainerBuilder>(IServiceProviderFactory<TContainerBuilder> factory) {_serviceProviderFactory = new ServiceFactoryAdapter<TContainerBuilder>(factory ?? throw new ArgumentNullException(nameof(factory)));return this; }

我們找到_serviceProviderFactory定義的地方,默認值就是為ServiceFactoryAdapter傳遞了DefaultServiceProviderFactory實例。

private IServiceFactoryAdapter _serviceProviderFactory = new ServiceFactoryAdapter<IServiceCollection>(new DefaultServiceProviderFactory());

繼續查找ServiceFactoryAdapter的大致核心實現

internal class ServiceFactoryAdapter<TContainerBuilder> : IServiceFactoryAdapter {private IServiceProviderFactory<TContainerBuilder> _serviceProviderFactory;public object CreateBuilder(IServiceCollection services){return _serviceProviderFactory.CreateBuilder(services);}public IServiceProvider CreateServiceProvider(object containerBuilder){return _serviceProviderFactory.CreateServiceProvider((TContainerBuilder)containerBuilder);} }

通過查找HostBuilder中這段源碼我們可以知道ServiceFactoryAdapter創建出來的容器是供整個Host使用的。也就是說我們在程序中使用的容器相關的都是由它提供的。
接下來我們看下默認的DefaultServiceProviderFactory的大致實現。找到源碼位置

public class DefaultServiceProviderFactory : IServiceProviderFactory<IServiceCollection> {public IServiceCollection CreateBuilder(IServiceCollection services){return services;}public IServiceProvider CreateServiceProvider(IServiceCollection containerBuilder){return containerBuilder.BuildServiceProvider(_options);} }

沒啥邏輯,其實就是把默認的IServiceCollection和IServiceProvider通過工廠的形式提供出來。這么做的目的只有一個,就是降低依賴的耦合度方便我們能夠介入第三方的IOC框架。口說無憑,接下來我們就看一下Autofac是怎么適配進來的。我們在GitHub上找到Autofac.Extensions.DependencyInjection倉庫的位置https://github.com/autofac/Autofac.Extensions.DependencyInjection,找到Autofac中IServiceProviderFactory實現類AutofacServiceProviderFactory,看看他是如何適配到默認的IOC框架的

public class AutofacServiceProviderFactory : IServiceProviderFactory<ContainerBuilder> {private readonly Action<ContainerBuilder> _configurationAction;public AutofacServiceProviderFactory(Action<ContainerBuilder> configurationAction = null){_configurationAction = configurationAction ?? (builder => { });}public ContainerBuilder CreateBuilder(IServiceCollection services){//由于是使用Autofac本身的容器去工作,所以返回的Autofac承載類ContainerBuildervar builder = new ContainerBuilder();//將現有的IServiceCollection中注冊的實例托管到ContainerBuilder中builder.Populate(services);//這一步是我們自定義注入到Autofac方法的委托,及我們在Startup類中定義的//public void ConfigureContainer(ContainerBuilder builder)方法_configurationAction(builder);return builder;}public IServiceProvider CreateServiceProvider(ContainerBuilder containerBuilder){if (containerBuilder == null) throw new ArgumentNullException(nameof(containerBuilder));//獲取Container容器,因為接下來要使用獲取實例的方法了var container = containerBuilder.Build();//這個類實現了IServiceProvider接口//實現了public object GetService(Type serviceType)方法從Autofac的Container中獲取實例return new AutofacServiceProvider(container);} }

IServiceProviderFactory的工作其實就是適配符合我們使用的適配器模式,其核心就是用你的容器去托管注冊到IServiceCollection中的服務。然后用你的容器去構建IServiceProvider實例。

總結

????通過以上我們對自帶的DependencyInjection工作方式有了一定的了解,而且其擴展性非常強,能夠使我們通過自己的方式去構建服務注冊和注入,我們以Autofac為例講解了三方容器集成到自帶IOC的方式。有很多核心的源碼并沒有講解到,因為怕自己理解不夠,就不誤導大家了。我在上文中涉及到源碼的地方基本上都加了源碼的連接,可以直接點進去查看源碼,之前源碼探究相關的文章也都是一樣,可能之前有許多同學沒有注意到。主要原因是我粘貼出來的代碼有刪減,最重要的還是怕自己理解不到位,誤導了大家,這樣就能用過點擊自己查看源碼了。如有你有更好的理解,或者覺得我講解的理解不到的地方,歡迎評論區溝通交流。

????歡迎掃碼關注我的公眾號????

總結

以上是生活随笔為你收集整理的浅谈.Net Core DependencyInjection源码探究的全部內容,希望文章能夠幫你解決所遇到的問題。

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

亚洲最新视频在线 | 69视频国产 | 人人干人人超 | 日韩大片免费在线观看 | 久久久国产一区二区三区四区小说 | 在线91av| 中日韩欧美精彩视频 | 国产精品网在线观看 | 久久天天躁夜夜躁狠狠躁2022 | 中文字幕丰满人伦在线 | 日韩免费一级a毛片在线播放一级 | 一区二区三区韩国免费中文网站 | 狠狠操操网| 国产一二三区在线观看 | 亚洲一区二区麻豆 | 日韩中文三级 | 爱色婷婷| 精品久久久久久久久久国产 | 中文字幕免费在线看 | 天天综合视频在线观看 | 国产黄在线看 | 久草久热 | 你操综合| 狠狠色丁香婷婷综合欧美 | 玖玖玖在线 | 3d黄动漫免费看 | 91天天视频| 久久影院一区 | 亚洲成av人电影 | 韩国一区二区av | 夜色资源站国产www在线视频 | 日本精品久久久一区二区三区 | 99精品在线观看视频 | 国产精品丝袜 | 欧美在线1区 | 婷婷激情五月 | 欧美一区,二区 | 五月婷婷综合激情网 | 五月丁色| 亚洲成人软件 | 久久国产精品电影 | 51精品国自产在线 | 视频在线播放国产 | 国产一区二区精 | 精品无人国产偷自产在线 | 色激情在线 | 97人人射| 就要色综合 | 毛片1000部免费看 | 精品成人国产 | 久久久久久不卡 | 91黄色在线视频 | 天天爽天天爽 | 黄色一及电影 | 视频在线观看日韩 | 四虎亚洲精品 | 国产黄色av影视 | 丁香在线观看完整电影视频 | 国产呻吟在线 | 久久激情视频网 | 中文字幕有码在线观看 | 国产成人a亚洲精品v | 国产va在线 | 日本激情视频中文字幕 | 国产丝袜一区二区三区 | 国产精品久久电影观看 | 五月婷婷,六月丁香 | 久久久久影视 | 在线中文字幕一区二区 | 欧美日产在线观看 | 丁香婷婷久久久综合精品国产 | 日韩丝袜在线观看 | 亚洲精品乱码久久久久久 | 97成人在线观看 | 韩国中文三级 | 久久成人国产精品入口 | 99久久99久久精品国产片 | 国产精品中文字幕av | 国产一及片 | 国产综合片 | 久久夜靖品 | 香蕉在线播放 | 正在播放 国产精品 | 精品在线你懂的 | 六月色 | 在线黄频 | 久久久久福利视频 | 欧美日韩高清一区二区 | 手机av网站 | 五月激情丁香婷婷 | 久久精品79国产精品 | 国产看片网站 | 1024手机基地在线观看 | 欧美极品久久 | 九七在线视频 | 免费在线观看亚洲视频 | 91精品国自产在线观看欧美 | 人人cao| 成年人app网址 | 亚洲国产美女久久久久 | 中文字幕在线看视频 | 黄网站色欧美视频 | 国产福利在线不卡 | 91av资源在线 | 久久草在线免费 | 免费在线观看黄色网 | 国产精品正在播放 | 黄视频网站大全 | 日韩免费| 国产亚洲情侣一区二区无 | 日本二区三区在线 | 天天做日日做天天爽视频免费 | 在线免费观看国产黄色 | 狠狠操狠狠操 | 国产精品 中文字幕 亚洲 欧美 | 中文字幕有码在线播放 | 国产精成人品免费观看 | 欧美 日韩 成人 | 黄色小说在线免费观看 | 日韩在线电影观看 | 成人a在线 | 色多多在线观看 | 999久久久久久久久 69av视频在线观看 | 在线观看福利网站 | 日韩精品不卡在线 | 一区二区三区 中文字幕 | 国产在线精品二区 | 91成人在线看 | 日韩精品视频在线免费观看 | 超碰人人草人人 | 国产69精品久久久久99尤 | 缴情综合网五月天 | 男女免费av| 国产精品美女久久久久久久 | 亚洲国产福利视频 | 人人超碰人人 | 日韩久久久久久久久久久久 | 国产视频在 | 国产裸体bbb视频 | 亚洲国产人午在线一二区 | 成人av电影免费在线观看 | 国产在线观看高清视频 | 国产丝袜美腿在线 | 激情视频亚洲 | 欧美人交a欧美精品 | 97视频在线观看网址 | 美女视频网站久久 | 日日夜夜精品视频天天综合网 | 九草视频在线观看 | 免费看国产精品 | 黄网站色视频免费观看 | 国产97色| 国产一区二区高清 | 青青久视频 | 久草在线视频网站 | 91自拍91| 久久精品爱爱视频 | a色网站| 在线视频麻豆 | 97夜夜澡人人双人人人喊 | 毛片网站免费在线观看 | 日韩在线视频看看 | 韩国精品视频在线观看 | 国产主播大尺度精品福利免费 | 亚洲91中文字幕无线码三区 | 中文字幕色综合网 | 五月婷婷视频 | 免费观看av | 久久情侣偷拍 | 最近中文字幕视频完整版 | 日韩网站一区 | 国产美女无遮挡永久免费 | 国产亚洲激情视频在线 | 99精品久久只有精品 | 欧日韩在线 | 久久久免费观看视频 | 亚洲天堂网视频在线观看 | 国产精品美女免费视频 | 91精品国产91久久久久久三级 | 成人一区二区在线观看 | 亚州精品在线视频 | av在线小说 | 亚洲国产一区二区精品专区 | 成人欧美一区二区三区在线观看 | 亚洲成人精品影院 | 国产精品原创在线 | 国产69熟 | 成人午夜剧场在线观看 | 婷婷性综合 | 91少妇精拍在线播放 | 99热国产在线中文 | 国产精品视频大全 | 99成人免费视频 | 高清国产午夜精品久久久久久 | 中文字幕免费播放 | 九九视频在线 | 国产精品2018 | adn—256中文在线观看 | 欧美日韩高清一区二区 国产亚洲免费看 | 中文字幕在线观看第二页 | 91久久国产自产拍夜夜嗨 | 伊人国产在线播放 | 国产手机视频精品 | 亚洲国产精品人久久电影 | 日本公妇在线观看 | 欧美综合在线观看 | 国产在线视频一区二区三区 | 国产人成一区二区三区影院 | 日韩av片免费在线观看 | 久久精品爱视频 | 欧美午夜精品久久久久久孕妇 | 天天操天天舔天天爽 | 欧美精品一区二区在线观看 | 精品女同一区二区三区在线观看 | 在线视频手机国产 | 婷婷日韩 | 成人午夜片av在线看 | 亚洲另类视频 | 天天色天天操天天爽 | 91在线免费公开视频 | 久久久久国产精品一区二区 | 特级西西444www大胆高清无视频 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 91精品国产99久久久久久红楼 | 91免费观看视频网站 | 欧美永久视频 | 中文字幕免费观看视频 | 亚洲精品玖玖玖av在线看 | 久久国语 | 欧美色综合天天久久综合精品 | 国产一区二区三区四区在线 | 成人免费观看在线视频 | 最近日本韩国中文字幕 | 91亚洲精品国产 | 九九久久久 | 天天综合天天综合 | 激情开心色 | 免费观看完整版无人区 | 国内视频在线 | 国产成人区 | 人人爽久久涩噜噜噜网站 | 国产精品剧情 | 美腿丝袜一区二区三区 | 中文字幕精品在线 | 在线观看黄a | 九九综合久久 | 狠狠躁日日躁夜夜躁av | 色视频在线观看 | 中文字幕超清在线免费 | 午夜av在线免费 | 婷婷精品国产欧美精品亚洲人人爽 | 久久综合中文色婷婷 | 中文字幕久久网 | 天天操天天操 | 久久天堂精品视频 | 久久综合电影 | 亚洲精品资源在线观看 | 天天干天天操天天入 | 日日夜夜精品免费 | 999色视频| 天天爽夜夜爽人人爽一区二区 | 欧美日韩国产高清视频 | 激情片av | 精品国产一区二区三区日日嗨 | 国产精品久久99综合免费观看尤物 | 中文字幕一区二区三区久久蜜桃 | 91九色性视频 | 亚洲午夜小视频 | 久久伊人婷婷 | 人人澡人| 亚洲成色 | 国产做aⅴ在线视频播放 | 国产三级在线播放 | 深夜免费福利视频 | 国产精品资源 | 成人在线免费小视频 | www黄在线 | 成人亚洲综合 | 日韩综合一区二区 | 中文字幕电影一区 | 久久久精品久久日韩一区综合 | 狠狠色狠狠综合久久 | 国产一区二区不卡视频 | 日韩三级视频在线观看 | 日日草视频 | 六月色婷婷 | 不卡的av在线 | 亚洲 欧美 综合 在线 精品 | 久久久久国产一区二区 | 国产精品99久久免费观看 | 黄色一级大片在线观看 | 亚洲一区二区三区在线看 | 一级国产视频 | 国产在线a | 少妇性aaaaaaaaa视频 | 日本成人免费在线观看 | 日韩精品中文字幕久久臀 | 国产精品免费久久久久久 | 视频国产一区二区三区 | 视频一区二区三区视频 | 国产精品一区二区三区99 | 色播99| 国产最新在线观看 | 中文字幕第一页在线播放 | 亚洲欧洲久久久 | 亚洲经典在线 | 亚洲国产精品va在线看 | 免费三级网 | 成人av在线观 | 成人在线观看资源 | 国产成人精品a | 久久综合久色欧美综合狠狠 | av免费电影网站 | 蜜臀久久99精品久久久酒店新书 | 国产美女被啪进深处喷白浆视频 | 国产精品久久久久一区二区三区共 | 日韩区在线观看 | 欧美在线free | 欧美另类性 | 在线欧美中文字幕 | 久久精彩 | 亚洲永久精品在线 | 91热视频 | 精品 激情 | 久久综合狠狠综合 | 日韩系列在线 | 一区在线观看 | 五月婷婷综合在线 | 亚洲欧美在线视频免费 | 日本性生活免费看 | 中文字幕亚洲在线观看 | 欧美激情精品久久久久久免费印度 | 国产97在线看 | 中文乱码视频在线观看 | 香蕉久草 | a久久久久久 | 中文字幕乱码电影 | 午夜 久久 tv | 日韩一区二区三免费高清在线观看 | 日韩色视频在线观看 | 日本精品二区 | 91理论电影 | 日韩欧美网站 | 五月婷婷视频 | 中文字幕一区二区三区乱码在线 | 中文字幕国产精品 | 91精品久久久久久粉嫩 | 六月丁香婷婷久久 | 伊人丁香| 免费日韩av电影 | 精品国产区 | 1024手机在线看 | 亚洲精品国产日韩 | 91香蕉视频在线下载 | 91日韩在线 | 日韩av高潮 | 亚洲天堂香蕉 | 亚洲国产剧情av | 国产专区精品视频 | 成年人在线电影 | 有码中文字幕在线观看 | 国产一级片免费播放 | 国产黄免费在线观看 | 成人av免费在线看 | 久久欧美综合 | 操夜夜操| 免费91麻豆精品国产自产在线观看 | 日韩 在线 | 狠狠躁夜夜躁人人爽视频 | 国产精品中文字幕av | 成人作爱视频 | 国产黄色免费电影 | 美女视频久久久 | 狠狠狠色丁香综合久久天下网 | 色网站在线免费 | 亚洲免费精彩视频 | 91大神免费在线观看 | 成人av在线观 | 亚洲狠狠操 | 久久久久久久久久久久久久免费看 | 国产黄色精品 | 91黄站| 一区二区三区手机在线观看 | 99久久这里有精品 | 亚洲综合成人婷婷小说 | 国产亚洲精品久久19p | 精品久久久久久久久久久久久 | 免费试看一区 | 亚洲三级国产 | 久久这里只有精品1 | 欧美激情另类文学 | 日本久久精 | 美女中文字幕 | 91福利视频久久久久 | 视频一区二区免费 | 国产一级性生活 | 亚洲欧美偷拍另类 | 伊人久久婷婷 | 免费a网| 色av网站 | 国产成人在线播放 | 国产免费黄视频在线观看 | 99色视频在线 | 在线中文字幕观看 | av免费网 | 欧美动漫一区二区三区 | 91成人精品国产刺激国语对白 | 日日操日日 | 国产99在线 | 狠狠色伊人亚洲综合网站色 | 国产精品成人a免费观看 | 91在线视频播放 | 久久伊99综合婷婷久久伊 | 日本激情视频中文字幕 | www.成人久久 | 一区二区在线不卡 | 日韩成人在线免费观看 | 胖bbbb搡bbbb擦bbbb | 亚洲精品97| 一区二区中文字幕在线 | 成人四虎 | 超碰在线94 | 亚洲九九 | 国产精品美女久久久免费 | 四虎在线观看视频 | 天天操天天摸天天干 | 成人午夜剧场在线观看 | 99久久www免费 | 国产99久久久国产精品免费看 | 国产精品精品久久久 | 成人少妇影院yyyy | 日本久久久久久久久久久 | 久精品视频在线观看 | 国产色拍拍拍拍在线精品 | 亚洲一区二区三区四区精品 | 在线观看一级视频 | 天天射天天干 | 日韩专区一区二区 | 在线欧美最极品的av | 亚洲 在线 | 最近免费观看的电影完整版 | 日本在线观看一区二区三区 | 成人理论在线观看 | 欧美精品一区二区在线观看 | 国产一级大片在线观看 | 日韩精品久久久久 | 久久国产高清 | 在线视频中文字幕一区 | 久久久综合色 | 日日夜精品 | 91九色在线播放 | 狠狠婷婷 | 精品国产成人在线影院 | 超级碰视频| 亚洲欧美经典 | 日日操夜夜操狠狠操 | 中文字幕第一页av | 97精品超碰一区二区三区 | 91在线亚洲 | 日韩在线不卡av | 久艹视频在线观看 | 国产一区二区在线观看免费 | 色多多污污在线观看 | wwwwww色| 国产在线观看国语版免费 | 亚洲国产欧洲综合997久久, | 久久91久久久久麻豆精品 | 天天草天天色 | 西西444www大胆高清视频 | 色综合久久88色综合天天 | 婷婷av资源 | 国产一级免费观看视频 | 91精品国产91久久久久福利 | 在线久草视频 | 日韩精品免费在线播放 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 日韩手机视频 | 色婷婷色 | 久草精品网 | 草久久久久 | 99热这里只有精品在线观看 | 国产婷婷在线观看 | 成人av动漫在线 | 一区二区三区在线观看 | 日韩av高潮 | 青春草免费在线视频 | 精品国产精品一区二区夜夜嗨 | 中文永久免费观看 | 激情综合五月天 | 99 久久久久 | 久久久久久黄色 | 天天天插 | 免费看污网站 | 欧美韩国日本在线观看 | 91麻豆精品国产91久久久久 | 国产成在线观看免费视频 | 97色视频在线| 亚洲国产精品影院 | 在线免费av播放 | 国产精品久久久区三区天天噜 | 久久免费av电影 | 欧美少妇xx| 在线播放日韩av | 欧美亚洲国产日韩 | 日韩激情小视频 | 黄色一区二区在线观看 | 久久精品久久精品久久39 | 91爱爱免费观看 | 91高清在线看 | 99久久精品国产系列 | 色偷偷88欧美精品久久久 | 国产精品久久久久久久久久免费 | 国产91电影在线观看 | 成人久久久精品国产乱码一区二区 | 又黄又爽又刺激 | 国产九九在线 | 亚州av免费 | 国产精品久久久久久久久久三级 | 日韩国产欧美视频 | 人人干人人艹 | 91av国产视频| 免费情趣视频 | 最近最新mv字幕免费观看 | 国产白浆视频 | 91福利社在线观看 | 国产精品久久久久三级 | 久久免费视频5 | 99欧美精品 | 婷婷色综合网 | 久草视频2| 中文字幕资源在线观看 | 国产精品一区久久久久 | 91丨九色丨高潮 | 久久99精品国产麻豆宅宅 | 婷婷电影在线观看 | 中文字幕欧美三区 | 激情丁香婷婷 | 天天爽天天射 | 亚洲资源视频 | 成人97人人超碰人人99 | 中文字幕国产精品一区二区 | 欧美人人爱 | 中文字幕精品久久 | 欧美 日韩 性 | 久草在线免费资源 | 精壮的侍卫呻吟h | 国产精品地址 | 亚洲v欧美v国产v在线观看 | 国产精品原创 | 激情五月亚洲 | 日韩h在线观看 | 中文字幕丝袜一区二区 | 色婷婷综合激情 | 91视频啪| 欧美aa在线 | av.com在线 | 操操操人人人 | 亚洲va综合va国产va中文 | 天天综合网 天天综合色 | 亚洲伊人婷婷 | 99精品国产一区二区三区麻豆 | 国产精品黑丝在线观看 | 日韩a级免费视频 | 久热av | 久久久免费 | 香蕉在线播放 | 欧美一级高清片 | 免费视频黄| 激情综合网五月婷婷 | 综合av在线 | 二区三区精品 | 中文字幕在线播出 | 亚洲精品乱码久久久一二三 | 粉嫩av一区二区三区四区五区 | 天天色天天色 | www四虎影院 | 亚洲日本中文字幕在线观看 | 91精品国产成人 | 亚洲精品av中文字幕在线在线 | 国产黄色大片免费看 | a级国产片 | 国产精品av免费在线观看 | 免费一级黄色 | 黄色片亚洲 | 狠狠久久综合 | 日本aaa在线观看 | 国产aaa免费视频 | 精品国产一区二区三区四区vr | 三级在线视频观看 | 97av.com| 久久精彩免费视频 | 久久69av | a级片韩国| 色黄www小说 | 99久久精品国产亚洲 | 日本福利视频在线 | 国内精品久久久久影院优 | 日韩av视屏 | 亚洲japanese制服美女 | 综合色中色 | 日韩av电影一区 | 久久久影片| 日日成人网| 黄色毛片视频免费观看中文 | 亚洲午夜精品电影 | 国产一区二区三区免费视频 | 日韩欧美精品免费 | 日韩动漫免费观看高清完整版在线观看 | 亚洲国产欧美在线看片xxoo | 视频直播国产精品 | 国产午夜精品一区二区三区四区 | 国产黄免费看 | 亚洲 欧美日韩 国产 中文 | 国产va在线 | www亚洲国产| 欧美另类一二三四区 | 在线91观看 | 国产一级片在线播放 | 久久国产精品免费一区二区三区 | 国产999在线观看 | 97免费视频在线播放 | 国产一级免费在线观看 | 福利网址在线观看 | 免费成人av | 91av免费看 | 天天爱天天舔 | 麻豆视频在线免费看 | 国产三级国产精品国产专区50 | 少妇bbb搡bbbb搡bbbb′ | 人成在线免费视频 | 热精品| 久久www免费视频 | 久久人人爽爽 | 91精品在线观看入口 | 狠狠狠狠狠色综合 | 色综合久久久久综合 | 91视频这里只有精品 | 国产无遮挡又黄又爽馒头漫画 | 99久久er热在这里只有精品15 | 亚洲精品久久激情国产片 | 亚洲最新在线视频 | 91pony九色丨交换 | 国产精品一区二区久久国产 | 久久久久久久久久电影 | 日本精品久久久久中文字幕5 | 久久综合国产伦精品免费 | 四虎影视成人精品 | 久久综合九色 | 国产成人av在线 | 特级黄录像视频 | 久久免费视频播放 | 一级淫片在线观看 | 亚在线播放中文视频 | 国产在线观看国语版免费 | 黄色成人91| 欧美在线视频一区二区三区 | 伊人永久 | 91成年视频 | 99久久99| 国产999精品视频 | 久久久视频在线 | 欧美性色xo影院 | 一级片免费视频 | 少妇视频在线播放 | 欧美日韩视频观看 | 午夜在线观看影院 | 久久这里只有精品久久 | 午夜视频免费在线观看 | 99在线视频精品 | 久久久久福利视频 | 伊人久久国产精品 | av中文字幕亚洲 | 又污又黄的网站 | 999久久久免费视频 午夜国产在线观看 | 国产午夜三级一区二区三桃花影视 | 最新日韩电影 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 一本一本久久a久久 | 99久久99热这里只有精品 | 少妇搡bbb | 亚州精品国产 | 中文字幕免费一区 | 久久久久亚洲精品国产 | 久久精品一区二区三区视频 | 日韩精品黄 | 成 人 免费 黄 色 视频 | 国产日韩在线观看一区 | ,久久福利影视 | 69精品视频在线观看 | 久久久久二区 | 亚洲天堂网在线视频 | 91在线产啪 | 夜夜躁天天躁很躁波 | aaawww| 伊人久久五月天 | 免费日韩视频 | 日韩理论片在线 | 亚洲精品国产日韩 | 久久婷婷一区 | 久久av在线播放 | 在线观看免费av网站 | 国产精品免费在线视频 | 91福利视频久久久久 | 在线国产日本 | 99色视频| 久久亚洲在线 | 国产一区二区久久久久 | 欧美日韩在线视频观看 | 免费高清在线一区 | 日韩久久久久 | 99久高清在线观看视频99精品热在线观看视频 | 亚洲另类xxxx | 丁香电影小说免费视频观看 | a级国产片 | 久久免费一 | 日韩在线观看精品 | 免费成人看片 | 激情综合中文娱乐网 | 中文字幕日韩精品有码视频 | 91在线视频一区 | 青青草在久久免费久久免费 | 玖玖视频精品 | 亚洲在线视频免费观看 | 亚洲久草在线 | 欧美一级久久 | 国产小视频你懂的 | 久久乐九色婷婷综合色狠狠182 | 久久久wwww | 欧美日本日韩aⅴ在线视频 插插插色综合 | 精品国产一区二区三区久久久蜜月 | 九色最新网址 | 国产精品电影一区 | 亚洲砖区区免费 | 免费高清在线观看成人 | 亚洲精品成人网 | 中文字幕欧美日韩va免费视频 | 丁香久久激情 | 中文字幕在线观看完整版电影 | 伊人色综合久久天天网 | 欧美夫妻性生活电影 | 美女在线免费观看视频 | 日韩午夜剧场 | 久久精品一 | 伊人网av| 亚洲天堂香蕉 | 91麻豆精品久久久久久 | 黄色软件在线观看视频 | 在线视频在线观看 | 久久亚洲精品国产亚洲老地址 | 色婷婷综合久久久 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 亚洲 综合 激情 | 99热99re6国产在线播放 | 少妇激情久久 | 91手机视频 | 国产精品久久久久婷婷二区次 | 一区二区三区四区五区在线 | 伊人首页 | 99视频这里只有 | 992tv在线观看网站 | 国产精品va在线 | 99精品国产免费久久久久久下载 | 在线观看爱爱视频 | 91免费版在线观看 | 欧美成人手机版 | 欧美午夜精品久久久久 | www..com黄色片| 色综合久久久久综合99 | 久久婷婷视频 | 成年人国产在线观看 | 97超碰人人网 | 国产精品一区二区久久精品爱涩 | 91chinese在线 | 国产精品九九视频 | 91亚洲精品久久久 | 五月天六月婷 | 免费看三级黄色片 | 久久精品www人人爽人人 | 国产乱码精品一区二区三区介绍 | 91久久精品一区二区三区 | 美女网站视频免费都是黄 | 欧美一区二区日韩一区二区 | 国产精品剧情在线亚洲 | 精品国产区在线 | 天堂av色婷婷一区二区三区 | 日韩欧美在线高清 | 免费黄色在线播放 | 精品中文字幕在线 | 久久免费视屏 | 91成人天堂久久成人 | 九九免费在线观看视频 | 欧美乱码精品一区二区 | 国产精品久久久久久久久久久免费 | 少妇自拍av | 成年人av在线播放 | 国产成人精品一区二区三区在线观看 | 日韩欧美亚州 | 中文字幕永久免费 | 免费精品在线 | 国产精品中文 | 欧美一级乱黄 | 亚洲精品国精品久久99热 | 国产拍揄自揄精品视频麻豆 | 午夜婷婷在线播放 | 国产在线观看免费av | 狠狠狠色丁香婷婷综合激情 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 欧美色图p | 久久国产精品99久久人人澡 | 69国产精品视频 | 国产高清久久 | 国产特黄色片 | 99精品视频在线播放免费 | 97久久精品午夜一区二区 | 成 人 黄 色 视频免费播放 | 在线观看视频在线观看 | 96视频在线 | 亚洲午夜精品一区二区三区电影院 | 黄色一级免费网站 | 国产精品久久久久久久久久久久冷 | 中文字幕在线观看免费 | av爱干 | 国产伦理一区二区三区 | av片中文字幕 | 日韩久久精品一区二区三区 | 亚洲精品中文在线观看 | 日韩精品久久久久久久电影竹菊 | 国产一级一片免费播放放 | 黄av免费在线观看 | 99久久婷婷国产精品综合 | 狠狠久久婷婷 | 国产韩国日本高清视频 | 国产黄色片久久 | 激情综合网在线观看 | 亚洲精品合集 | 国产日韩av在线 | 免费视频区 | 麻豆网站免费观看 | 天天综合导航 | 亚洲精品在线视频播放 | 中文字幕在线观看免费高清完整版 | 最近2019中文免费高清视频观看www99 | 国内视频一区二区 | 蜜臀久久99精品久久久酒店新书 | bbw av| 国产亚洲成人网 | 五月婷婷视频在线观看 | 午夜精品成人一区二区三区 | 亚洲色图av| 人人干人人爽 | 日韩精品在线免费观看 | 91精品国产自产在线观看永久 | 操操操人人 | 欧美一区二区三区在线观看 | 成人av在线影院 | 91免费日韩 | 欧美日韩免费观看一区二区三区 | 亚洲国产播放 | 日韩精品一区二区三区三炮视频 | 在线观看视频一区二区三区 | 日韩精品一区二区三区在线播放 | 国产v视频| 一区二区视频电影在线观看 | 97免费在线观看 | 国产手机在线观看视频 | 中文字幕亚洲不卡 | 国产精品高潮呻吟久久av无 | 亚洲天堂精品视频 | 97韩国电影 | 五月婷激情| 婷婷激情在线 | 国产精品久久亚洲 | 欧美韩国日本在线观看 | 日韩在线视频精品 | 亚洲视频在线视频 | 精品福利视频在线 | 激情久久综合 | 干干干操操操 | 久久精品电影院 | 中文字幕久久网 | 国产成人久久精品 | 欧美精品久久久久久久久久丰满 | 99久精品| 国产精品一区二区三区视频免费 | 久草视频在线播放 | 国内一级片在线观看 | 国产成人精品一区二区三区网站观看 | 天天操天天拍 | 99视频免费看 | 久草久草视频 | 久久露脸国产精品 | 天天添夜夜操 | 成人黄色免费观看 | 天天摸天天干天天操天天射 | 久精品视频 | 欧美日韩一级久久久久久免费看 | 一级a毛片高清视频 | 国产精品网红直播 | 国产精品av在线 | 91视频 - x99av| 欧美精品在线观看 | 久久国产经典视频 | 在线观看av免费观看 | 国产麻豆剧传媒免费观看 | 97色噜噜| 欧美午夜久久久 | 在线av资源| 亚洲三级av | 99热这里精品 | 成年人网站免费在线观看 | 亚洲一区二区视频在线 | 在线观看免费观看在线91 | 天天操天天色天天射 | 久久久久亚洲精品国产 | 另类五月激情 | 91高清免费看 | 丝袜美女在线观看 | 一级理论片在线观看 | 国产美女被啪进深处喷白浆视频 | www.操.com| 四虎在线视频 | 一区二区视频欧美 | 天天色天天操天天爽 | 亚洲精品中文字幕在线 | 国产精品午夜在线观看 | 日韩精品高清不卡 | 国产欧美中文字幕 | 91精选| 天天操比 | 欧美日韩1区2区 | 成人午夜网 | 久久亚洲欧美日韩精品专区 | www免费| 天天射狠狠干 | 国产麻豆视频 | 国产综合激情 | 久久综合色婷婷 | 亚洲影院国产 | 亚洲高清久久久 | 久久人人爽人人人人片 | 中文区中文字幕免费看 | 欧美极品裸体 | 一区二区三区电影 | 成年人免费在线看 | 国产精品美女久久久 | 人人澡人人添人人爽一区二区 | 六月丁香激情综合色啪小说 | 国产精品永久久久久久久久久 | 精品欧美一区二区在线观看 | 一区二区在线影院 | 日韩精品一区二区在线观看视频 | 五月婷婷中文网 | av黄免费看| 天天爱天天草 | 午夜黄网 | 成人免费一区二区三区在线观看 | 黄av资源| 天天射综合| 久久99在线 | 欧美爽爽爽 | 97超碰人人网| 婷婷夜夜 | 黄色免费网站下载 | 超碰免费观看 | 91大神在线观看视频 | 成人小视频在线观看免费 | 国产1区2区3区精品美女 | 日日躁天天躁 | 久久久久久蜜av免费网站 | 又色又爽的网站 | 日韩精品一区二区在线观看 | 国产特级毛片aaaaaaa高清 | 日韩欧美视频在线观看免费 | 国产资源在线视频 | 国产一区二区在线免费播放 | 久久精品8 | 夜夜操综合网 | 天天添夜夜操 | 99热999 | 日韩中文字幕网站 | 天天干天天做 | 久久久国产一区二区三区四区小说 | 久久精品国产精品 | 国产精品自产拍在线观看 | 亚洲精品影院在线观看 | 中文字幕av一区二区三区四区 | 99久久久久久久久 | 丁香婷婷深情五月亚洲 | 免费成人黄色 | 久久精品欧美一区 | 亚洲成人黄色av | av在线免费不卡 | av在线a| 欧美久草在线 | 88av视频| 日韩精品国产一区 | 日韩一区精品 | 色999精品 |