/// <summary> /// Internal constructor with all dependencies. /// </summary> internal CustomInstanceProvider(Func <TImplementation> instanceGetter, IInjectionDetector injectionDetector, InstanceProtectionMode protectionMode, InjectionAlertChannel alertChannel, LifeTime lifeTime = LifeTime.Unknown) : base(lifeTime, injectionDetector, protectionMode, alertChannel) { _instanceGetter = instanceGetter ?? throw new ArgumentNullException(nameof(instanceGetter)); }
/// <summary> /// <p>Initializes a new instance of the <see cref="SafeObject{TObject}" /> class.</p> /// </summary> /// <param name="settings">The settings.</param> /// <param name="injectionDetector">The injection protector.</param> /// <exception cref="ArgumentOutOfRangeException"> /// <paramref name="settings" /> is not null and <see cref="InitialSafeObjectSettings.InitialValue" /> is not a type /// of <typeparamref name="TObject" />. /// </exception> /// <exception cref="ArgumentNullException"> /// <p><paramref name="injectionDetector" /> is <see langword="null" />.</p> /// <p> /// Initial object value from <paramref name="settings" /> is null or cannot be casted to /// <typeparamref name="TObject" /> /// </p> /// </exception> internal SafeObject(IInitialSafeObjectSettings settings, IInjectionDetector injectionDetector) : base(settings.ProtectionMode) { _injectionDetector = injectionDetector ?? throw new ArgumentNullException(nameof(injectionDetector)); _injectionDetector.AlertChannel = settings.AlertChannel; SetInitialValue(settings.InitialValue, ref _object); ChangeProtectionMode(new ProtectionChangeContext <SafeObjectProtectionMode>(settings.ProtectionMode)); IsReadOnly = false; IsReadOnly = settings.IsReadOnly; }
protected SafeInstanceProviderBase(LifeTime lifeTime, IInjectionDetector injectionDetector, InstanceProtectionMode protectionMode, InjectionAlertChannel alertChannel) : base(protectionMode) { _injectionDetector = injectionDetector ?? throw new ArgumentNullException(nameof(injectionDetector)); LifeTime = lifeTime; AssemblyQualifiedName = typeof(TImplementation).AssemblyQualifiedName; AlertChannel = alertChannel; ChangeProtectionMode(new ProtectionChangeContext <InstanceProtectionMode>(protectionMode)); }
private static SafeInstanceProviderBase <string> GetSut(LifeTime lifeTime = LifeTime.Unknown, InstanceProtectionMode protectionMode = InstanceProtectionMode.NoProtection, IInjectionDetector injectionDetector = null, InjectionAlertChannel alertChannel = InjectionAlertChannel.DebugFail) { return(new TestInstanceProvider( alertChannel: alertChannel, injectionDetector: injectionDetector ?? Stubs.Get <IInjectionDetector>(), lifeTime: lifeTime, protectionMode: protectionMode)); }
public SafeObject <TestObject> GetSut( TestObject initialObject = null, bool isReadOnly = false, SafeObjectProtectionMode protectionMode = Defaults.ObjectProtectionMode, IInjectionDetector injectionDetector = null, InjectionAlertChannel channel = Defaults.AlertChannel) { return (new SafeObject <TestObject>( new InitialSafeObjectSettings( isReadOnly: isReadOnly, initialValue: initialObject, protectionMode: protectionMode, alertChannel: channel) , injectionDetector ?? Stubs.Get <IInjectionDetector>())); }
/// <summary> /// Internal constructor with all dependencies. /// </summary> internal SingletonInstanceProvider(IInjectionDetector injectionDetector, InstanceProtectionMode protectionMode, InjectionAlertChannel alertChannel) : base(LifeTime.Singleton, injectionDetector, protectionMode, alertChannel) { }
public TestInstanceProvider(LifeTime lifeTime, IInjectionDetector injectionDetector, InstanceProtectionMode protectionMode, InjectionAlertChannel alertChannel) : base( lifeTime, injectionDetector, protectionMode, alertChannel) { }
/// <summary> /// Internal constructor with all dependencies. /// </summary> internal TransientInstanceProvider(IInjectionDetector injectionDetector, InstanceProtectionMode protectionMode, InjectionAlertChannel alertChannel) : base(LifeTime.Transient, injectionDetector, protectionMode, alertChannel) { }