Im Anschluss an unter Verwendung von Dependency Injection für WCF services zu injizieren, ist es eine Möglichkeit, DI der Verwendung für WCF Validatoren, so dass man dies tun könnte:Wie ein Objekt in eine WCF-Validator-Klasse
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);
}
}
EDIT - Ich habe versucht, den Ratschlag von Dzmitry auf meine benutzerdefinierte Verhaltenserweiterung anzuwenden, da mein Validator in app.config definiert ist. Ich bekomme leider ein MethodMissingException, da wcf mein Validator will einen Standardkonstruktor haben:
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 mein Verhalten Klasse:
public class DependencyInjectionServiceBehavior : BehaviorExtensionElement, IServiceBehavior
{
public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
{
serviceHostBase.Credentials.UserNameAuthentication.CustomUserNamePasswordValidator = DISupport.Kernel.Get<IService>();
}
}
Was ist ein "WCF Validator"? –
Ich weiß nicht, wie ich es sonst nennen soll. Wenn Sie möchten, dass ich in diesem Fall spezifisch ein "wcf validator" bin, wäre das eine benutzerdefinierte Implementierung eines UserNamePasswordValidator. –
John. Warum bist du so großspurig? Ich könnte auch so sein, wenn ich mehr als 56.000 Rep-Punkte hätte, aber Sie gehen irgendwie herablassend aus. Diese Meinungen stammen nicht nur von diesem Beitrag, sondern auch von anderen Antworten und Themen, an denen Sie beteiligt waren, wobei Sie in einigen Fällen brutal und gemein sind. – SideFX