3

Ich folgte dem Tutorial this, um die Unity-Abhängigkeitsinjektion in WebAPI zu verwenden.Eine "ApiController" -Instanz kann nicht wiederverwendet werden - Unity DI

jede Art der Registrierung zu vermeiden seperatly benutzen ich dieses Setup

_container.RegisterTypes(
      AllClasses.FromLoadedAssemblies(), 
      WithMappings.FromMatchingInterface, 
      WithName.Default, 
      WithLifetime.ContainerControlled); 

Diese gut zum ersten Mal funktioniert, aber seit der zweiten, die ich bekomme

„eine‚ApiController‘nicht-Instanz kann wiederverwendet werden. 'ApiController' muss pro eingehender Nachricht erstellt werden. Überprüfen Sie Ihren benutzerdefinierten 'IHttpControllerActivator' und stellen Sie sicher, dass er nicht die gleiche Instanz erzeugt. "

Wie kann ich das reslove?

Antwort

4

Aus dem Aussehen, wenn Sie sagen, WithLifetime.ContainerControlled bedeutet es, dass Sie Unity eine Singleton-Instanz registrieren wollen (d. H. Die Instanz wiederverwenden), worüber es sich beschwert. Sie müssen einen PerRequest Lifetime Manager setzen

+0

Die Umstellung auf 'WithLifetime.PerResolve' hat den Trick gemacht. Vielen Dank –

Verwandte Themen