小编Cyr*_*and的帖子

Autofac - DelegatingHandler(HttpMessageHandler)注册

我有一个DelegatingHandler我需要注册的类库中的自定义Autofac.webapi主机解析它对运行时的依赖性,因此主机没有对此库的引用.

public class LocalizationHandler : DelegatingHandler
{
    protected override async Task<HttpResponseMessage> SendAsync( HttpRequestMessage request, CancellationToken cancellationToken )
    {}
}
Run Code Online (Sandbox Code Playgroud)

在我的Autofac初始化程序类中,我尝试过以下方法:

protected override void Load( ContainerBuilder builder )
{
     builder.RegisterType<LocalizationHandler>();
     builder.Register(c => new LocalizationHandler());
}
Run Code Online (Sandbox Code Playgroud)

在主机中注册此类处理程序的常规方法是:

public static void Register(HttpConfiguration httpConfiguration)
{        
    httpConfiguration.MapHttpAttributeRoutes();          
    httpConfiguration.MessageHandlers.Add(new LocalizationHandler());
}
Run Code Online (Sandbox Code Playgroud)

但是我没有访问这里的主机项目.任何想法如何注入处理程序ContainerBuilder

c# ioc-container autofac asp.net-web-api asp.net-web-api2

3
推荐指数
1
解决办法
3166
查看次数

如何使用C#从IIS获取当前的Worker Request列表?

我正在编写RESTful Web服务状态页面的代码.我想知道是否有将IIS的当前请求转移到C#中.

我正在使用IIS 7.0,我想要的信息

IIS>工作程序> ASP.NET v4.0 >请求

在此输入图像描述

c# iis iis-7 request worker

3
推荐指数
1
解决办法
1631
查看次数

使用'Autofac.Core.Activators.Reflection.DefaultConstructorFinder'找到的构造函数都没有

我收到以下错误消息:

System.InvalidOperationException:尝试创建"App.Web.Controllers.ContractWizardController"类型的控制器时发生错误.确保控制器具有无参数的公共构造函数.---> Autofac.Core.DependencyResolutionException:可以使用可用的服务和参数调用在'App.Web.Controllers.ContractWizardController'类型上找到'Autofac.Core.Activators.Reflection.DefaultConstructorFinder'的构造函数:无法解析构造函数'Void .ctor(App.Service.IWizardTypeStepService,App.Service.IAppBrandService,App.Service.IAppInstitutionService)'的参数'App.Service.IWizardTypeStepService wizardTypeStepService'.
at autofac.Core.Activators.Reflection.ReflectionActivator.ActivateInstance(IComponentContext context,IEnumerable 1 parameters) at Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable1参数)at Autofac.Core.Resolving.InstanceLookup.Execute()
at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope,IComponentRegistration registration,IEnumerable)1 parameters) at Autofac.Core.Resolving.ResolveOperation.ResolveComponent(IComponentRegistration registration, IEnumerable1个参数)Autofac.Resolution.ResolveOperation.Execute(IComponentRegistration注册,IEnumerable 1 parameters) at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(IComponentRegistration registration, IEnumerable1参数)在Autofac.ResolutionExtensions.TryResolveService(IComponentContext上下文,服务服务,IEnumerable 1 parameters, Object& instance) at Autofac.ResolutionExtensions.ResolveOptionalService(IComponentContext context, Service service, IEnumerable1参数)在Autofac.ResolutionExtensions.ResolveOptional(IComponentContext上下文,类型serviceType) System.Web.Mvc.DefaultControllerFactory.DefaultControllerActivator.Create(RequestContext requestContext,Type)中的Autofac.Integration.Mvc.AutofacDependencyResolver.GetService(类型serviceType)上的Autofac.ResolutionExtensions.ResolveOptional(IComponentContext context,Type serviceType),IEnumerable`1参数) controlle rType)---在System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext,Type controllerType)的System.Web.Mvc.DefaultControllerFactory.DefaultControllerActivator.Create(RequestContext requestContext,Type controllerType)的内部异常堆栈跟踪结束在System.Web.Mvc.DefaultControllerFactory.CreateController(的RequestContext的RequestContext,字符串controllerName)在System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase HttpContext的,一个IController&控制器,IControllerFactory&工厂)
在System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase HttpContext的System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context,AsyncCallback cb,System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext,AsyncCallback callback,Object state)中的AsyncCallback回调,Object状态) System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep中的Object extraData)System.Web.HttpApplication.ExecuteStep中的.Execute()(IExecutionStep step,Boolean&completedSynchronously)

Global.asax中

public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles); …
Run Code Online (Sandbox Code Playgroud)

c# autofac

3
推荐指数
1
解决办法
9876
查看次数

参数化实例化如何与 SingleInstance lifescope 配合使用

Parameterized Instantiation( Func<X, Y, B>)文档中,最后一句话说

但是,如果您将一个对象注册为 SingleInstance() 并多次调用 Func 来解析该对象,则无论您传入的参数不同,每次都会获得相同的对象实例。 仅传递不同的参数不会破坏尊重对于生命周期范围。

它如何工作具有不同参数构造函数的单例类。

c# autofac

2
推荐指数
1
解决办法
776
查看次数

如何在容器创建后使用autofac注册类型

我有一个基础架构单例,我想解决autofac

在容器创建时,我注册AppPaths为单身人士

但是,由于各种原因(测试,一些基础设施的东西),我希望能够在运行时将该实例与新实例交换出来.让我们说一个派生类型class AppPaths2 : AppPaths.

我找不到这样做的API.

我可以使用CommentServiceLocator来获取实例IComponentContext但我没有看到从那里解决东西的方法.

c# registration inversion-of-control autofac

2
推荐指数
1
解决办法
3911
查看次数

工厂方法的Autofac单件

我几乎找一个端口Autofac被实施这里有温莎城堡.这IBus是EasyNetQ库提供的接口,我想注册一个将IBus实例实例化为单例的工厂.BusBuilder.CreateMessageBus是工厂方法.Castle Windsor的例子:

container.Register(
    Component.For<IBus>()
             .UsingFactoryMethod(BusBuilder.CreateMessageBus)
             .LifestyleSingleton()
    );
Run Code Online (Sandbox Code Playgroud)

c# autofac easynetq

2
推荐指数
1
解决办法
830
查看次数

迁移Classes.FromAslembly of Castle Windsor Library到Autofac

我在温莎城堡注册了这个.什么是AutoFac中的替代代码?

//Transient
        context.IocManager.IocContainer.Register(
            Classes.FromAssembly(context.Assembly)
                .IncludeNonPublicTypes()
                .BasedOn<ITransientDependency>()
                .WithService.Self()
                .WithService.DefaultInterfaces()
                .LifestyleTransient()
            );
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection castle-windsor autofac

2
推荐指数
1
解决办法
242
查看次数

如何在autofac中传递有关解析时间的参数

我在autofac中写下以下寄存器类型:

 builder.RegisterType<NoteBookContext>()
        .As<DbContext>()
        .WithParameter(ResolvedParameter.ForNamed<DbContext>("connectionstring"));
Run Code Online (Sandbox Code Playgroud)

实际上,我编写了这个代码,用于使用connectionstring参数注入NoteBookContext.(即:new NoteBookContext(string connectionstring))

现在,我怎样才能在运行时传递参数值?

c# autofac

2
推荐指数
1
解决办法
2438
查看次数

使用powershell获取json键值

我有以下json输出字符串:

{
    "meta": {
        "limit": 20,
        "next": null,
        "offset": 0,
        "previous": null,
        "total_count": 1
    },
    "objects": [{
        "bcontext": "/api/v2.0/buildercontext/2/",
        "bugs": [],
        "build": {
            "bldtype": "obj",
            "branch": "main",
            "buildstatus": [{
                "build": "/api/v2.0/build/2140634/",
                "failurereason": "_checkfailures (seen: FAIL - /testrun/18647678/ - area[4769] AIM-SANITY)",
                "id": "1294397",
                "lastupdate": "2015-03-31T14:30:18",
                "overridden": false,
                "overridedesc": "",
                "overrideuser": null,
                "recommended": false,
                "resource_uri": "/api/v2.0/buildstatus/1294397/",
                "slatype": {
                    "id": "26",
                    "name": "VA_Bats",
                    "resource_uri": "/api/v2.0/sla/26/"
                }
            }],
            "changeset": "494625",
            "coverage": false,
            "deliverables": ["/api/v2.0/deliverable/4296455/", "/api/v2.0/deliverable/4296956/", "/api/v2.0/deliverable/4296959/", "/api/v2.0/deliverable/4296986/", "/api/v2.0/deliverable/4296992/", "/api/v2.0/deliverable/4296995/", "/api/v2.0/deliverable/4297034/", "/api/v2.0/deliverable/4297058/"],
            "git_host": null,
            "git_repo": …
Run Code Online (Sandbox Code Playgroud)

powershell

0
推荐指数
1
解决办法
5634
查看次数

使用带有参数构造函数的 Autofac Webform

我们有一些遗留应用程序假设我们无法更改该 SiteSettings 类,因为完整的项目编码数千行会干扰。所以我们想用 DI 解决问题。我在这里创建了 POC 应用程序,您可以在global asax评论中 看到//HOW CAN I PASS TenantId HERE so it will be same for this complete httprequest life.

遗留代码:

public class OrderController
    {
        public static string CompleteOrder()
        {
            return SiteSettings.Instance.DefaultTimeZone();
        }
    }


    public class SiteSettings
    {
        public ITenantSettings TenantSettings { get; set; }

        private static SiteSettings _instance;

        private SiteSettings() { }

        public static SiteSettings Instance => _instance ?? (_instance = new SiteSettings());

        public string DefaultTimeZone()
        {
            return TenantSettings.DefaultTimeZone();
        }
    }
Run Code Online (Sandbox Code Playgroud)

新的注射类 …

c# webforms inversion-of-control autofac

0
推荐指数
1
解决办法
361
查看次数

使用Autofac在Web API 2 AccountController中注入ISecureDataFormat

我在Web API 2项目中使用ASP.NET Identity 2.2,但我不确定如何连接使用AutofacISecureDataFormat<AuthenticationTicket>依赖.AccountController

我试过这个:

builder.RegisterType<ISecureDataFormat<AuthenticationTicket>>()
       .As<TicketDataFo??rmat>(); 
Run Code Online (Sandbox Code Playgroud)

并得到错误:

类型'Microsoft.Owin.Security.ISecureDataFormat`1 [Microsoft.Owin.Security.Authenticat ionTicket]'不能分配给服务'Microsoft.Owin.Security.DataHandler.TicketDataFormat'

我遇到的所有问题似乎都没有使用最新的ASP.NET身份稳定版本.

任何帮助是极大的赞赏.

asp.net dependency-injection autofac asp.net-web-api2 asp.net-identity-2

0
推荐指数
1
解决办法
1007
查看次数

如何在 .net 应用程序中以字符串形式获取 T-SQL PRINT 命令的输出

如何在我的 .net 应用程序中检索 SQL Server 的 PRINT t-sql 命令生成的字符串

Microsoft SQL Server Management Studio 示例:

在此处输入图片说明

c# sql sql-server

0
推荐指数
1
解决办法
2116
查看次数

Autofac注册所有名为IFoo.Name的IFoo类型。

只是学习Autofac并努力按照惯例重新命名几个命名实例。

public interface IFoo
{
    string AutoFactName{ get; }
    object DoSomething();
}
Run Code Online (Sandbox Code Playgroud)

看着这个界面,我想要完成的是沿着这些思路

        builder.RegisterTypes()
            .AssignableTo<IFoo>()
            .As<IFoo>()
            .Named<IFoo>(i => i.AutoFactName);
Run Code Online (Sandbox Code Playgroud)

我已经尝试了一些实现这种效果的方法。最终目标是动态注册和解析实例。

c# dependency-injection autofac autofac-configuration

0
推荐指数
1
解决办法
39
查看次数