日韩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源码探究的全部內容,希望文章能夠幫你解決所遇到的問題。

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

jizz18欧美18 | 色综合久久久久久久久五月 | 三级av在线 | 国产 日韩 欧美 中文 在线播放 | 日韩精品视频在线免费观看 | av国产网站 | 中文字幕欧美日韩va免费视频 | 天天干天天看 | 人人插人人艹 | 在线小视频 | 狠狠伊人 | 99精品视频在线观看视频 | 久久夜色精品国产欧美乱 | 一区二区影视 | 久久视频中文字幕 | 久久视频国产 | 免费观看mv大片高清 | av中文在线播放 | 日韩特黄一级欧美毛片特黄 | 中文字幕在线观 | 国产婷婷视频在线 | 91网页版免费观看 | 亚洲免费在线 | 亚州视频在线 | 国产精品免费视频久久久 | 人人爽人人爽人人爽学生一级 | 日本中文字幕影院 | 久久精品99国产精品 | 天天干天天操天天射 | wwwwww国产| 免费a v在线| 日韩精品免费一线在线观看 | 成人三级av | 超碰在线人人草 | 在线观看日韩免费视频 | 精品久久久久久久久久岛国gif | 在线视频观看91 | 久久69精品久久久久久久电影好 | 久久久亚洲精华液 | 五月天激情综合 | 日韩欧美精品在线观看视频 | 久久99久国产精品黄毛片入口 | 777奇米四色| 国产成人久久av977小说 | 成人久久18免费网站图片 | 欧美伦理一区二区三区 | 999久久久国产精品 高清av免费观看 | 国产高清绿奴videos | 亚州精品天堂中文字幕 | 色综合久久精品 | 亚洲黄色一级大片 | 视频在线观看亚洲 | 99热99热 | 久久久久久麻豆 | 中文字幕一区二区三区视频 | 免费福利在线观看 | av一区二区三区在线 | 黄色软件大全网站 | 狠狠色香婷婷久久亚洲精品 | 午夜久操 | 探花国产在线 | 国产精品久久久久婷婷二区次 | 久久久久免费电影 | 国产精品视频线看 | 国产精品第十页 | 国产美女精彩久久 | 久草在线免费看视频 | 91在线视频网址 | 五月激情五月激情 | 国产理论片在线观看 | 国产精品免费观看国产网曝瓜 | 97精品国产97久久久久久免费 | 国产免费又爽又刺激在线观看 | 国产在线欧美日韩 | 日韩欧美在线国产 | 色吊丝在线永久观看最新版本 | 96亚洲精品久久 | 天天插天天狠天天透 | 亚洲精品乱码久久久久久久久久 | 日韩高清无线码2023 | 国产成人a v电影 | 一区二区不卡在线观看 | 摸bbb搡bbb搡bbbb | 婷婷久月 | v片在线看| 欧美精品乱码久久久久 | 六月丁香激情综合色啪小说 | 久久综合影视 | 日韩在线观看视频一区二区三区 | 午夜三级在线 | 亚洲 欧美 91 | 日韩在线观看视频网站 | 日韩69av| 久久久精品 | 亚洲九九九 | 五月婷婷综合久久 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 久久99视频免费观看 | 91三级视频 | 中文字幕美女免费在线 | 手机看片国产日韩 | 天堂在线成人 | 国产一级淫片免费看 | 色大片免费看 | 成人av一区二区在线观看 | 国产精品v欧美精品 | 久久久99精品免费观看app | 黄色一级大片在线观看 | 99欧美| 欧美日韩在线免费观看视频 | 日韩精品一区二区三区电影 | 九九免费观看全部免费视频 | www日日| 人人干,人人爽 | 中文在线www | 国产一区在线精品 | 婷婷精品 | 国产精品美女久久久久aⅴ 干干夜夜 | 国产999精品久久久影片官网 | 伊人国产在线播放 | 天天天天色射综合 | 国产日韩精品欧美 | 国产在线a| 亚州国产精品久久久 | 久久大片| 国产黄色特级片 | 国产一区在线播放 | 99精品欧美一区二区三区 | 国内三级在线 | 亚洲在线黄色 | 999国产在线 | 999久久久久久久久6666 | 亚洲高清久久久 | 极品嫩模被强到高潮呻吟91 | 亚洲精品久久久久久久不卡四虎 | 国产手机视频在线 | 丁香综合激情 | 毛片网站在线看 | 成人av久久 | 91一区啪爱嗯打偷拍欧美 | 超碰公开在线观看 | av在线播放网址 | 国产成人精品av在线观 | 午夜av免费| 亚洲精品综合一二三区在线观看 | 欧美国产日韩一区二区三区 | aaa日本高清在线播放免费观看 | 又黄又爽又无遮挡的视频 | 欧美日韩另类视频 | 国产在线精 | 五月婷婷免费 | 玖玖精品视频 | 亚洲欧洲xxxx | 欧美精品在线观看 | 美女中文字幕 | 天堂av在线免费观看 | 日日夜夜精品免费视频 | 五月婷婷播播 | 九九有精品 | 99re国产| 91成品人影院| 最新av在线播放 | 91av在线免费看 | 97国产小视频 | 日韩精品一区二区在线观看 | 天天干,夜夜操 | 国产高清无线码2021 | 一级黄色免费网站 | 99视频精品在线 | 亚洲第二色 | 日韩中文字幕视频在线 | 手机在线欧美 | 999久久久久久久久6666 | 99亚洲精品视频 | 久久综合网色—综合色88 | 色偷偷88888欧美精品久久久 | 人人干人人做 | 日韩成人在线一区二区 | 日韩午夜在线播放 | 久久久性 | 日日色综合 | 亚洲精品理论片 | 国产中文视频 | 99久视频 | 国产精品免费在线播放 | 91视频麻豆视频 | www.av免费观看 | 国产一区二区精品久久91 | 九九在线播放 | 国产精品亚洲综合久久 | 国产免费观看av | 久久亚洲欧美日韩精品专区 | 欧美日韩精品在线一区二区 | 婷婷www| 91av原创 | 看黄色.com | 午夜精品久久久99热福利 | 狠狠地日| 免费高清在线视频一区· | 亚洲精品在线播放视频 | 美女视频a美女大全免费下载蜜臀 | 免费看特级毛片 | 欧美日韩亚洲在线观看 | 91久久精品日日躁夜夜躁国产 | 亚洲一级免费观看 | 国产黄a三级三级三级三级三级 | 成人在线免费看 | 成人免费在线网 | 2019精品手机国产品在线 | 色婷婷综合五月 | 一区久久久 | 亚洲涩涩一区 | 超碰在线个人 | 亚洲精品麻豆视频 | 中文字幕在线看视频 | 日韩亚洲精品电影 | 国产 字幕 制服 中文 在线 | 精品国产网址 | 97电影在线 | 日韩精品视频在线免费观看 | 国产视频二区三区 | 亚洲欧美激情精品一区二区 | 俺要去色综合狠狠 | 91系列在线观看 | 美国三级黄色大片 | 国产精品mv | 91九色丨porny丨丰满6 | 国产精品资源网 | 国产黄大片在线观看 | 免费黄a| 日本久久久久久科技有限公司 | 九色精品在线 | 四虎永久免费网站 | 精品乱码一区二区三四区 | 久草视频在线播放 | 亚洲综合在线五月天 | 婷婷丁香在线观看 | 91爱爱电影 | 欧美在线视频一区二区 | 人操人| 在线观看国产福利片 | 久久久久久久av麻豆果冻 | 欧美一区免费在线观看 | 亚洲三级毛片 | 日韩免费观看一区二区三区 | 狠狠干在线 | 久久久久免费网站 | 久久99精品国产99久久 | 国产精品久久久久久模特 | 欧美日韩在线精品 | 久久精品国产一区二区电影 | 在线观看亚洲电影 | 亚洲成人精品在线 | 久久久精品二区 | 成人h动漫在线看 | 国产精品午夜在线 | 九九九热精品免费视频观看 | 天天操网站 | 欧美在线视频精品 | 亚洲最大av在线播放 | 免费h视频 | 亚洲国产欧美在线看片xxoo | 免费一级片观看 | 中文字幕国产精品 | 2017狠狠干| 波多野结衣视频网址 | 亚洲一区二区视频在线播放 | 国产精品久久久一区二区三区网站 | 最近高清中文字幕在线国语5 | 狠狠色丁香 | 日韩国产精品久久久久久亚洲 | 六月婷婷久香在线视频 | 精品欧美一区二区精品久久 | 中文字幕精品三级久久久 | 亚洲国产三级在线 | 美女一区网站 | 成人av片在线观看 | 91视频免费看 | 日本午夜在线观看 | 九九免费观看视频 | 天天干天天爽 | 青青河边草免费观看完整版高清 | 久久久久福利视频 | 精品91视频| 五月激情综合婷婷 | 久久网页 | 九九久久久久久久久激情 | 黄色av网站在线观看 | 精品高清美女精品国产区 | 亚洲精品国产第一综合99久久 | 中文字幕在线观看第二页 | 91免费高清在线观看 | 六月激情丁香 | 99热九九这里只有精品10 | 天天干天天在线 | 天天天天爽| 国产精品色在线 | 国产99精品在线观看 | 狠狠久久| 最近中文字幕国语免费高清6 | 99久久这里有精品 | 日本中文字幕在线播放 | 精品91| 97国产精品亚洲精品 | 超碰av免费| 久久久久久蜜桃一区二区 | 18pao国产成视频永久免费 | 婷婷激情综合网 | 91在线亚洲| 国产又粗又猛又爽又黄的视频免费 | 日韩高清免费在线 | 久久精品国产第一区二区三区 | 日本99热 | 99久久精品免费一区 | 在线观影网站 | 热久久视久久精品18亚洲精品 | www.神马久久 | 爱av在线网 | 欧美日韩二区三区 | 黄a网 | 2023天天干| 亚洲精品婷婷 | 久久综合射 | 天天草天天爽 | 不卡av电影在线观看 | 日韩中文字幕一区 | 91在线免费视频 | 久久99久久99精品免观看粉嫩 | 五月天婷婷在线播放 | 四虎国产精品免费观看视频优播 | a级片韩国 | 999电影免费在线观看2020 | 国内外成人在线 | 久久久久久久久久久久久影院 | 国产成人精品一区二区三区福利 | 五月婷婷视频 | 高清免费在线视频 | 在线观看爱爱视频 | 91av手机在线观看 | 丰满少妇对白在线偷拍 | 欧美久久久久久久久久久久 | 亚洲成人xxx | 日本公妇色中文字幕 | 国产精品久久一区二区三区, | 国产91精品一区二区麻豆亚洲 | 色香网| 国产手机精品视频 | 日韩乱理 | 日韩成人精品一区二区 | 欧美激情视频一区二区三区免费 | 亚洲 欧美 国产 va在线影院 | 色婷五月天 | 亚洲高清在线观看视频 | 亚洲黄色免费电影 | 欧美成人在线免费 | 国内揄拍国产精品 | 久久五月婷婷丁香社区 | 中文字幕国产视频 | 国内精品久久久久影院优 | 久草在线费播放视频 | 久久精品国产成人精品 | 激情欧美xxxx | 欧美精品国产综合久久 | 在线看一级片 | 色综合色综合久久综合频道88 | 免费看黄色大全 | 在线观看日本高清mv视频 | 欧美视频在线观看免费网址 | 特级毛片爽www免费版 | 国产精品久久久久一区二区三区共 | 欧美伦理一区二区三区 | 成年人网站免费观看 | 人人插人人做 | 亚洲爱爱视频 | 国产精品k频道 | a黄在线观看 | 涩涩网站在线播放 | 91精品伦理| 黄色精品网站 | 成人天堂网| 色综合久久五月 | 久久久精品视频网站 | 欧美日韩国产精品一区二区 | www.超碰97.com| 亚洲乱码中文字幕综合 | 天天干天天拍天天操天天拍 | 99久热在线精品视频成人一区 | 欧美 国产 视频 | 免费看片网站91 | 亚洲综合欧美激情 | 天天干天天操天天射 | 国产成人综合在线观看 | 4p变态网欧美系列 | 99色在线观看视频 | 色婷av | 日韩中午字幕 | 91在线免费视频 | 91成人破解版| 狠狠婷婷 | 天天天在线综合网 | 香蕉视频网站在线观看 | 国产精品99久久免费黑人 | 国产综合香蕉五月婷在线 | 女人18精品一区二区三区 | 99在线视频网站 | 狠狠色丁香婷婷综合久久片 | 亚洲情影院 | 成人蜜桃网 | 成人小视频在线播放 | 99久久久久久久久 | 视频在线国产 | 99视频精品视频高清免费 | 一区二区亚洲精品 | 激情五月亚洲 | 欧美精品久久人人躁人人爽 | 亚洲精品国产视频 | av一级片| 国产精品2区 | 午夜电影一区 | 午夜视频在线瓜伦 | 九九热免费在线视频 | 日韩欧美国产激情在线播放 | 久久超级碰视频 | 一区二区欧美激情 | 亚洲免费不卡 | 天天躁日日躁狠狠躁av麻豆 | 日操操| 日韩99热| 亚洲一二区视频 | 久久亚洲成人网 | 久久国产剧场电影 | 婷婷视频在线播放 | 久久99久久99精品 | 黄色软件在线观看视频 | 成人av手机在线 | 欧美日在线 | 国内精品久久久 | 亚洲永久精品国产 | 久久狠狠一本精品综合网 | 成人av在线影视 | 国产久草在线观看 | 99久久精品国产一区二区成人 | 国产视频日韩视频欧美视频 | 最近更新好看的中文字幕 | 黄色大片免费网站 | 91av在线视频免费观看 | 永久免费av在线播放 | 久久黄视频| 2020天天干夜夜爽 | 国内久久 | 日本久久久久久科技有限公司 | 18av在线视频| 9久久精品 | 久久精品成人欧美大片古装 | 亚洲精品黄色 | 国产日韩视频在线观看 | 欧美日韩精品二区第二页 | 五月婷婷.com | 精品一二三四五区 | 亚洲成a人片在线观看网站口工 | 国产高清av免费在线观看 | 黄色一级大片在线观看 | 免费观看久久 | 久久久久成人精品亚洲国产 | 久久精品国产亚洲精品2020 | 国产99久久九九精品 | 怡红院av久久久久久久 | 精品久久国产精品 | 黄色成人毛片 | 欧美aaaxxxx做受视频 | 美女黄久久| 天天摸夜夜添 | 五月婷婷黄色网 | 香蕉视频网站在线观看 | 免费网站在线观看人 | www久久久久 | 欧美精品三级在线观看 | www.天天干.com | 日韩在线播放欧美字幕 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 97精产国品一二三产区在线 | 免费观看一区 | 欧美三人交 | 亚洲伦理一区二区 | 欧美精品第一 | 日韩在线观看视频网站 | 国产精品欧美久久久久三级 | 国产精品免费一区二区 | 精品伊人久久久 | 亚洲成人欧美 | av一级免费 | 国产免费久久精品 | 九九热精品在线 | av电影 一区二区 | 久艹在线观看视频 | 一级片视频免费观看 | 国产精品一区二区三区99 | 成人 亚洲 欧美 | 一区二区视频在线免费观看 | 一区二区欧美在线观看 | 在线天堂亚洲 | 亚洲国产午夜 | 亚洲欧洲精品在线 | 国产精品欧美激情在线观看 | 色婷婷综合成人av | 亚洲永久精品国产 | 丁香综合激情 | 日本aaaa级毛片在线看 | 国产精品男女视频 | 久久久久久久久久伊人 | 99热最新网址 | 91在线最新| 色综合久久久久 | 国产一级在线观看 | 91高清完整版在线观看 | 日韩成人免费在线 | 婷婷久久丁香 | 国产精品一区久久久久 | 国产精品一区二区免费看 | 免费看毛片网站 | 青春草国产视频 | 日本不卡一区二区 | 成人精品电影 | 日本精品视频网站 | 国产精品免费小视频 | 天天躁日日躁狠狠躁av中文 | 黄色午夜| 99热手机在线观看 | 婷婷中文字幕在线观看 | 日韩av高清 | 久久久久久久久久影院 | 日韩免费视频线观看 | 亚洲一级特黄 | 狠狠躁日日躁夜夜躁av | 色婷婷亚洲精品 | 久久久久国产成人精品亚洲午夜 | 日本精品视频在线观看 | 日韩综合视频在线观看 | 久久久久久久av麻豆果冻 | 久草香蕉在线 | 亚洲精品永久免费视频 | 成年人电影毛片 | 亚洲精品美女久久久久网站 | 探花在线观看 | 中文字幕乱码一区二区 | 日韩一二三在线 | 日韩在线观看视频一区二区三区 | 国产精品高潮在线观看 | 日韩在线观看的 | 久久91久久久久麻豆精品 | 久久a免费视频 | 五月开心婷婷网 | 午夜影院一级 | 西西444www大胆高清图片 | 国产美女网站视频 | 国产精品区在线观看 | 日韩视频在线观看视频 | se视频网址| 特黄色大片 | 国产亚洲精品无 | 91资源在线观看 | 日本福利视频在线 | 爱色婷婷 | 色综合久久网 | 99高清视频有精品视频 | 久久久久欧美精品999 | 国产精品igao视频网网址 | 一区二区三区在线观看中文字幕 | 亚洲闷骚少妇在线观看网站 | 免费看成人 | 毛片久久久| 在线免费色视频 | 久久99这里只有精品 | 亚洲情婷婷 | 久久综合精品国产一区二区三区 | av在线看网站 | 国产在线视频在线观看 | 日韩精品一区电影 | 伊色综合久久之综合久久 | 在线影院中文字幕 | 午夜视频在线瓜伦 | 99久久婷婷国产一区二区三区 | 日韩av中文在线 | 免费一级片视频 | 国产精品成人免费一区久久羞羞 | 日韩免费三级 | 国产一二区精品 | 伊人资源站 | 久草在线观看视频免费 | 欧美-第1页-屁屁影院 | 久久伊人精品一区二区三区 | 日韩欧美在线视频一区二区三区 | 国产一区二区免费看 | 欧美日韩视频在线观看一区二区 | 91麻豆精品国产91久久久久久 | 中文字幕在线观看不卡 | 一区二区三区免费看 | 日韩理论在线观看 | 国产98色在线 | 日韩 | 日本精品视频在线播放 | 日日夜夜狠狠干 | 97色视频在线 | 一级做a爱片性色毛片www | 久久狠狠亚洲综合 | 日韩专区一区二区 | 成年人在线观看免费视频 | 天天干.com| 国产免费视频在线 | 国产在线精品一区二区 | 国产一级黄大片 | 一区二区三区av在线 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 日韩av不卡播放 | 中文字幕 国产 一区 | 成人h电影在线观看 | 美国av片在线观看 | 精品久久久久久久久久 | www.久热 | aaa日本高清在线播放免费观看 | 日韩免费视频在线观看 | 日韩欧美精品在线 | 蜜臀aⅴ国产精品久久久国产 | 久久精品成人欧美大片古装 | 五月婷婷丁香综合 | 夜夜操天天 | 99国产在线视频 | 免费a视频在线 | 高清av中文字幕 | 免费观看国产成人 | 天天干天天射天天操 | 成人性生交大片免费观看网站 | 中文字幕人成一区 | 中文字幕电影在线 | 日韩电影在线一区 | 99色在线播放 | 日韩欧美在线观看一区二区 | 亚洲精品a区 | 久久夜色精品国产亚洲aⅴ 91chinesexxx | 五月婷婷六月丁香在线观看 | 手机在线黄色网址 | 欧日韩在线视频 | 国内丰满少妇猛烈精品播放 | 5月丁香婷婷综合 | 日韩在线观看视频一区二区三区 | 亚洲综合小说 | 91麻豆看国产在线紧急地址 | av三级av | 日韩中文字幕电影 | 亚洲精品乱码久久久久v最新版 | 激情视频免费观看 | 久久国产精品成人免费浪潮 | 超碰在线观看99 | 久草成人在线 | 国产精品久久久av | 精品中文字幕在线观看 | 国产黄色免费在线观看 | 免费在线色视频 | 人人添人人 | 国产二区视频在线观看 | 国产亚洲精品久久久久久网站 | 爱爱av在线| 成人毛片网 | 色婷婷狠狠五月综合天色拍 | 手机看国产毛片 | 国产手机视频 | 日韩av图片 | 婷婷伊人五月天 | 国产成人精品一区二区在线 | 欧美一级免费片 | 国产在线精品国自产拍影院 | 欧美激情第一页xxx 午夜性福利 | 亚洲 欧美 变态 国产 另类 | 91cn国产在线 | 中文字幕最新精品 | 综合久久久久 | 操操操天天操 | 国产成人久久久久 | 国产视| 亚洲一区二区三区四区在线视频 | 激情文学丁香 | 免费看的黄色 | 五月天婷婷狠狠 | 欧美一二三区在线播放 | 国产在线观看99 | 97高清免费视频 | 婷婷久久丁香 | 最新av在线免费观看 | 成人久久免费视频 | 国产视频一区在线 | 成年人视频在线免费播放 | 免费福利小视频 | 日韩va在线观看 | 亚洲高清不卡av | 手机在线看永久av片免费 | 免费久久精品视频 | 国产精品毛片一区二区 | 四虎永久网站 | 国产黄大片在线观看 | 丁香婷婷色综合亚洲电影 | 国产成人精品一区二区三区在线观看 | av黄色一级片 | 黄网在线免费观看 | 国产二区视频在线观看 | 婷婷久久一区 | www激情网| 午夜久久久久久久久 | 中文字幕一区二区在线播放 | 美女视频黄免费 | 99精品视频在线观看视频 | 永久免费的av电影 | 欧美乱大交 | 国产色综合天天综合网 | 国产中文字幕视频 | 日本在线成人 | 人人爱爱人人 | 久久精品一二区 | 在线观看中文字幕av | 久久国内精品视频 | 欧美最猛性xxxxx亚洲精品 | 国产精品12 | 国产精品久久久久影院日本 | 国产二区视频在线 | 国产精品乱码一区二区视频 | 欧美另类xxx | 国产精品对白一区二区三区 | 亚洲一区二区精品3399 | 久久成人免费视频 | 六月天综合网 | 99色在线视频 | 17婷婷久久www | 日韩电影在线观看一区 | 日本在线观看一区 | 911国产 | 精品久久毛片 | 日本中文字幕在线一区 | 女人18毛片a级毛片一区二区 | 久久99国产一区二区三区 | 欧美久久久久久久久久久久久 | 免费av网站在线看 | 天天操,夜夜操 | 日韩精品中文字幕av | 在线观看国产亚洲 | 色婷婷激情五月 | 欧美精品久久久久久久亚洲调教 | www.av免费观看 | 麻豆视传媒官网免费观看 | 91传媒视频在线观看 | 97视频在线观看播放 | 国产成人在线观看 | av在线播放国产 | 国产99久久久欧美黑人 | 丰满少妇在线观看资源站 | 中国一级特黄毛片大片久久 | 在线看日韩 | 婷婷综合五月天 | 黄色网www| 亚洲精品视频久久 | 91在线蜜桃臀 | 黄色精品在线看 | 亚洲 综合 国产 精品 | 国产成人精品一区一区一区 | 国产精品久久久久四虎 | 99 色 | 成人免费色 | 免费成人av网站 | 欧美性做爰猛烈叫床潮 | 国内成人综合 | 九九九在线观看 | 国产精品va最新国产精品视频 | 国产午夜一级毛片 | 欧美在线视频一区二区三区 | 日韩高清免费在线观看 | 久久艹艹 | 国产精品综合久久 | 探花视频网站 | 97人人人人| 久久久色 | 丁香婷婷综合激情 | 四虎永久精品在线 | 久久精品视频在线观看 | 九九热在线精品视频 | 国产精品久久久免费 | 久久福利国产 | 天天操网站| 高清一区二区三区 | av在线免费播放 | 欧美国产视频在线 | 亚洲精品免费在线观看视频 | 91av福利视频 | 1024手机基地在线观看 | 国产精品精品国产婷婷这里av | 欧美日韩中文国产 | 免费的黄色的网站 | 日韩av网站在线播放 | 婷婷色在线资源 | 久久香蕉一区 | 久久久久免费看 | 麻豆视频免费入口 | 国产福利在线 | 99这里都是精品 | 国产在线视频一区 | 最近在线中文字幕 | 成人免费xyz网站 | 亚洲国产中文字幕在线视频综合 | 一级a性色生活片久久毛片波多野 | 超碰在线免费福利 | 成人性生交大片免费观看网站 | 色综合夜色一区 | 波多野结衣网址 | 狠狠地操 | 久久婷婷丁香 | 久久亚洲综合国产精品99麻豆的功能介绍 | 伊人永久 | 天天综合在线观看 | 国产精品视频永久免费播放 | 国产免费中文字幕 | 久久天天躁狠狠躁亚洲综合公司 | 国产精品手机在线观看 | 日韩乱理 | 久久久久国产a免费观看rela | 96香蕉视频 | 三级午夜片 | 日本精品一区二区 | 黄网站app在线观看免费视频 | 黄色免费观看 | 欧洲视频一区 | 免费在线观看中文字幕 | 国产又粗又猛又色又黄网站 | 99热国产在线观看 | 亚洲成人精品国产 | 日韩一区二区三区高清在线观看 | 久久人人添人人爽添人人88v | 国产亚洲精品久久久网站好莱 | 日韩在线免费电影 | 成人小视频免费在线观看 | 国产精品久久毛片 | 在线视频婷婷 | 欧美日韩在线精品一区二区 | 天天操天天操天天爽 | 国产精品久久久精品 | 在线观看av小说 | 日韩有码欧美 | 亚洲精品午夜国产va久久成人 | 欧美成人精品欧美一级乱 | 日韩最新在线 | 欧美日韩久久不卡 | 国产丝袜一区二区三区 | 日韩夜夜爽 | 麻豆极品| 日本免费一二三区 | 国产色综合天天综合网 | 国产一级a毛片视频爆浆 | 亚洲电影第一页av | 操操综合网| 久久亚洲精品国产亚洲老地址 | 日本久久精品 | 亚州日韩中文字幕 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 99免费观看视频 | av一级片网站 | 日韩在线观看第一页 | 精品久久免费 | 国产a国产 | 国产福利91精品一区二区三区 | 黄色毛片大全 | 国产在线观看xxx | 欧美日韩在线观看不卡 | 欧美电影黄色 | 亚洲在线视频播放 | 免费在线激情电影 | 免费观看久久 | 久草在线最新视频 | 日韩精品免费在线播放 | 国产一区二区三区视频在线 | 国产又粗又猛又黄又爽视频 | 午夜精品一区二区三区免费 | 国产成人综合精品 | 国产精品手机播放 | 久久色在线观看 | 成人久久久久久久久久 | 天天干天天在线 | 欧美经典久久 | 黄视频网站大全 | 狠狠五月婷婷 | 超碰97免费在线 | 1024久久| 一级片视频在线 | 国产精品永久久久久久久久久 | 久久日本视频 | 网站你懂的 | 日韩欧美高清一区二区三区 | 国产精品精| 欧美影院久久 | 激情伊人| 久久成人国产精品一区二区 | 日韩精品大片 | 欧美片一区二区三区 | 99精品网站 | 精品专区一区二区 | 96亚洲精品久久 | 亚洲视频在线免费看 | 亚洲夜夜网 | 国产在线精品区 | 精精国产xxxx视频在线播放 | 国产亚洲精品久久久久久久久久 | 国产一级精品在线观看 | 91亚洲精品国偷拍自产在线观看 | 欧美福利视频 | 久久激情日本aⅴ | 色综合人人| 中文区中文字幕免费看 | 国产免费视频一区二区裸体 | 国产一区在线观看免费 | 99热这里只有精品免费 | 亚洲欧美日韩在线一区二区 | 婷婷色综合网 | 国产精品成人av电影 | 成人国产精品免费 | 99精品区| 973理论片235影院9 | 久久99热这里只有精品国产 | 精品一区二区在线播放 | 综合视频在线 | 成人免费影院 | 日韩中文字幕在线不卡 | 欧美日韩另类在线观看 | 精品国产99国产精品 | www.夜夜爱| 一二区精品| 国产一区二区久久 | 日韩美精品视频 | 久久草在线视频国产 | 黄色影院在线免费观看 | 国产精品麻 | 国产手机精品视频 | 果冻av在线 | 91在线视频免费播放 | 亚洲欧美精品一区二区 | 中文视频一区二区 | 99视频在线免费播放 | 亚洲综合射 | 国产精品美女久久久久久2018 | 欧美日韩在线电影 | 久久视频在线视频 | 久久99婷婷 | 免费在线一区二区三区 | 激情大尺度视频 | 色婷婷激情电影 | 久久精品国产一区二区电影 | 九九热1| 亚洲欧洲中文日韩久久av乱码 | 亚洲国产成人久久 | 在线小视频 | 久草热久草视频 | 中文字幕电影网 | 五月天丁香亚洲 | 免费日韩精品 | 激情开心色 | 五月开心六月婷婷 | 97人人人| a久久久久 | 奇米四色影狠狠爱7777 | 在线视频区 | 五月婷婷丁香网 | 高清色免费 | 国产精品女同一区二区三区久久夜 | a久久久久久 | 麻花豆传媒mv在线观看 | 久久亚洲日本 | 久久成 | 黄色免费大片 | 97免费公开视频 | 日韩av免费大片 | 九九热精品视频在线播放 | 国产一区二区三区四区大秀 | 午夜视频在线观看一区 | 91av精品| 国产成人一级 | 国产成人精品一区二区三区网站观看 | av在线网站大全 | 999久久久精品视频 日韩高清www | 天天操人人干 | 国产一区二区高清 | 在线一二三四区 | 国产精品视频线看 | 久久久久日本精品一区二区三区 | 三上悠亚一区二区在线观看 | 日韩欧美高清 | 成人xxxx| 国产精品一区二区美女视频免费看 | 五月婷婷丁香 | 亚洲欧洲国产视频 | 久久久久久久久久久精 | 国产黄色在线 | 婷婷亚洲综合五月天小说 | 一区二区国产精品 | 国产黄色片在线 | 97精品一区 |