Code Monkey home page Code Monkey logo

Comments (5)

liuhaoyang avatar liuhaoyang commented on May 22, 2024 4

要拦截类的话,应该把方法标记为virtual ,如果是属性,也应该把属性标记为virtual,并且拦截器特性标记在getset上面,并且不应该使用 services.BuildServiceProvider() 而是使用services.BuildAspectCoreServiceProvider()

from aspectcore-framework.

liuhaoyang avatar liuhaoyang commented on May 22, 2024

AspectCore 在AspNet Core中提供可选使用MSDI的serviceProvider 和 AspectCore的serviceProvider:

  1. 使用MSDI的serviceProvider
   public IServiceProvider ConfigureServices(IServiceCollection services)
   {
          services.AddDynamicProxy();
          return services.BuildAspectCoreServiceProvider();
   }
  1. 使用AspectCore提供的serviceProvider
   public IServiceProvider ConfigureServices(IServiceCollection services)
   {
          var container = services.ToServiceContainer();
          return container.Build();
   }

from aspectcore-framework.

John0King avatar John0King commented on May 22, 2024

@liuhaoyang 请问 这两种有什么区别?
因为在微软某处demo 或者 库里面 (忘了具体的哪) 配置服务的时候这样写的

        public static IServiceCollection AddExt(this IServiceCollection services)
        {
            var provider = services.BuildServiceProvider();
            services.Configure<CookieOptions>(op=>{
                // 这里的类型都是例子
                op.Domain =  provider.GetRequiredService<string>();
            });
            return services;
        }

这里的 provider 应该是 微软的 Microsoft.Extensions.DependencyInjection.ServiceProvider , 我担心是这个微软的Provider 没有 拦截效果

from aspectcore-framework.

liuhaoyang avatar liuhaoyang commented on May 22, 2024

https://github.com/dotnetcore/AspectCore-Framework/blob/master/core/src/AspectCore.Core/Configuration/Extensions/NonAspectsCollectionExtensions.cs 这里面预置了一些不会被拦截的namespace 。包括System下面的类,Microsoft.开头的类不会被拦截

from aspectcore-framework.

John0King avatar John0King commented on May 22, 2024

@liuhaoyang 你好像误会我的问题了

我是想问,如果我按上面那个 配置 CookieOptions 的方式 ”var provider = services.BuildServiceProvider();“
, 获取一个 应该拥有拦截的类, 是否这个类就失去了 拦截效果?

from aspectcore-framework.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.