Injizieren eines Objekts in eine WCF-Validierungsklasse

Nachverfolgung der Verwendung der Abhängigkeitsinjektion fürWCF-DiensteGibt es eine Möglichkeit, DI für WCF zu verwendenValidatoren, damit man das machen kann:

public class DIValidator : UserNamePasswordValidator
{
    private readonly IService service;

    [Inject]
    public DIValidator(IService service)
    {
        this.service = service;
    }

    public override void Validate(string userName, string password)
    {
        service.Login(userName, password);
    }
}

BEARBEITEN - Ich habe versucht, Dzmitrys Rat auf meine benutzerdefinierte Verhaltenserweiterung anzuwenden, da mein Validator in app.config definiert ist. Leider erhalte ich eine MethodMissingException, da wcf möchte, dass mein Validator einen Standardkonstruktor hat:

System.MissingMethodException: No default constructor has been defined for this object.

at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)

Hier ist meine Verhaltensklasse:

    public class DependencyInjectionServiceBehavior : BehaviorExtensionElement, IServiceBehavior
    {
        public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
        {
            serviceHostBase.Credentials.UserNameAuthentication.CustomUserNamePasswordValidator = DISupport.Kernel.Get<IService>();
        }
    }

Antworten auf die Frage(2)

Ihre Antwort auf die Frage