2

Как настроить впрыск с частичным классом?Простой инжектор - Впрыск частичного класса

container.RegisterPerWebRequest<IDataContextAsync, DataBaseContext>(); 
container.RegisterPerWebRequest<IStoredProcedureContext, DataBaseContext>(); 

Мой код:

public partial class DataBaseContext : DataContext 
public partial class DataBaseContext : IStoredProcedureContext 

Ошибка:

-[Torn Lifestyle] The registration for IStoredProcedureContext maps to the same implementation and lifestyle as the registration for IDataContextAsync does. They both map to DataBaseContext (Web Request). This will cause each registration to resolve to a different instance: each registration will have its own instance during a single Web Request. See the Error property for detailed information about the warnings. Please see https://simpleinjector.org/diagnostics how to fix problems and how to suppress individual warnings.

+0

Это не имеет ничего общего с классом пристрастии. Частичные классы - это трюк времени компиляции; частичные классы не существуют во время выполнения. – Steven

+0

Так вы прочитали связанную документацию? https://simpleinjector.org/diagnostics – Steven

ответ

4

См here

var container = new Container(); 
container.Options.DefaultScopedLifestyle = new WebRequestLifestyle(); 

var registration = Lifestyle.Scoped.CreateRegistration<DataBaseContext>(container); 
container.AddRegistration(typeof(IStoredProcedureContext), registration); 

container.Verify();