MVC/WebApi 앱이 있습니다. 나는이 솔루션을 위해 Autofac을 사용하기 시작했다.Autofac 무작위 매개 변수가없는 public 생성자입니다. 오류
Autofac이 작동합니다. 그러나 임의로 오류가 발생합니다 :
'SomeController'유형의 컨트롤러를 만들려고 할 때 오류가 발생했습니다. 컨트롤러에 매개 변수없는 public 생성자가 있는지 확인하십시오.
솔루션을 청소하고 다시 작성해야합니다. 그리고 더 이상 오류가 없습니다. Visual Studio의 인스턴스 (복구를 실행해야 할 수도 있음)라고 생각했습니다. 그러나 방금 IIS로 릴리스하려고 시도하고 오류가 다시 나타납니다.
아무도 전에 이것을 만난 사람이 있습니까?
public class CryptographyModule : Module
{
protected override void Load(ContainerBuilder builder)
{
builder.RegisterType<AesCryptographyService>()
.As<IAesCryptographyService>()
.InstancePerRequest();
}
}
나는 Autofac 부트 스트랩이 사용하고 있습니다 : 나는 모든 등록은과 같이 모듈을 완료 한
:
여기에 일부 코드 정보의
public static class Bootstrapper
{
public static void Run()
{
BootStrapAutofac();
}
private static void BootStrapAutofac()
{
var builder = new ContainerBuilder();
var localAssemblies = GetLocalAssemblies();
builder.RegisterApiControllers(localAssemblies);
builder.RegisterControllers(localAssemblies);
builder.RegisterAssemblyModules(localAssemblies);
//build container
var container = builder.Build();
var webApiResolver = new AutofacWebApiDependencyResolver(container);
GlobalConfiguration.Configuration.DependencyResolver = webApiResolver;
var mvcResolver = new AutofacDependencyResolver(container);
DependencyResolver.SetResolver(mvcResolver);
}
private static Assembly[] GetLocalAssemblies()
{
return AppDomain.CurrentDomain.GetAssemblies()
.Where(a => a.GetName().Name.StartsWith("Loc"))
.ToArray();
}
}
어떤 웹 API 버전을 사용하고 있습니까? 2.1 인 경우 http://www.nuget.org/packages/Autofac.WebApi2 (및 mvc5를 사용하는 경우 https://www.nuget.org/packages/Autofac.Mvc5) –
Web Api 2 및 나는 두 번 확인해야하지만 99.9 %는 Autofac.webapi2가 설치되어 있고 mvc5가 – bsavio
인 것을 확인했습니다. 위의 내용을 모두 확인했습니다. 나는 알았지 만 당신의 아주 유효한 제안은 제게 두 번째 추측을 시켰습니다. 어쨌든, 이것이 자동 스튜디오가 아닌 시각적 인 스튜디오 구축 문제 일 수 있습니까? – bsavio