Autofac.De base.DependencyResolutionException

Autofac newbie désireux de mieux comprendre l'exception suivante, toute aide/conseils sur ce serait très apprécié!

Exception Non Gérée: 
Autofac.De base.DependencyResolutionException: 
Aucun des constructeurs trouvé avec les Publics de liaison des drapeaux " sur le type de Test.D'autorisation.LoginService " peut être invoquée avec les services disponibles et les paramètres: 
Ne peut pas régler le paramètre 'Système.Func`1[Système.IO.Stream] readStream' de constructeur " Void .ctor(Système d'.Func`1[Système.IO.Stream], Système.Func`1[Système.IO.Stream])'. 
à l'Autofac.De base.Activateurs.De la réflexion.ReflectionActivator.ActivateInstance(IComponentContext contexte, IEnumerable`1 paramètres) dans \autofac\src\Source\Autofac\Core\Activateurs\Réflexion\ReflectionActivator.cs:ligne 117 
à l'Autofac.De base.La résolution.InstanceLookup.Activer(IEnumerable`1 paramètres) dans \autofac\src\Source\Autofac\Core\Résoudre\InstanceLookup.cs:ligne 79 
à l'Autofac.De base.La résolution.InstanceLookup.Execute () \autofac\src\Source\Autofac\Core\Résoudre\InstanceLookup.cs:ligne 62 
à l'Autofac.De base.La résolution.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration enregistrement, IEnumerable`1 paramètres) dans \autofac\src\Source\Autofac\Core\Résoudre\ResolveOperation.cs:la ligne 124 
à l'Autofac.De base.La résolution.InstanceLookup.ResolveComponent(IComponentRegistration enregistrement, IEnumerable`1 paramètres) dans \autofac\src\Source\Autofac\Core\Résoudre\InstanceLookup.cs:la ligne 115 
à l'Autofac.Les fonctionnalités.Les Collections.CollectionRegistrationSource.c__DisplayClass4.c__DisplayClass6.b__1(IComponentRegistration cr) dans \autofac\src\Source\Autofac\Features\Collections\CollectionRegistrationSource.cs:ligne 80 au Système.Linq.Énumérable.WhereSelectArrayIterator`2.MoveNext() 
au Système.Linq.Tampon`1..ctor(IEnumerable`1 source) 
au Système.Linq.Énumérable.ToArray[TSource](IEnumerable`1 source) 
à l'Autofac.Les fonctionnalités.Les Collections.CollectionRegistrationSource.c__DisplayClass4.b__0(IComponentContext c, IEnumerable`1 p) \autofac\src\Source\Autofac\Features\Collections\CollectionRegistrationSource.cs:ligne 80 
à l'Autofac.De base.Activateurs.Délégué.DelegateActivator.ActivateInstance(IComponentContext contexte, IEnumerable`1 paramètres) dans \autofac\src\Source\Autofac\Core\Activateurs\Délégué\DelegateActivator.cs:ligne 65 
à l'Autofac.De base.La résolution.InstanceLookup.Activer(IEnumerable`1 paramètres) dans \autofac\src\Source\Autofac\Core\Résoudre\InstanceLookup.cs:ligne 79 
à l'Autofac.De base.La résolution.InstanceLookup.Execute () \autofac\src\Source\Autofac\Core\Résoudre\InstanceLookup.cs:ligne 62 
à l'Autofac.De base.La résolution.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration enregistrement, IEnumerable`1 paramètres) dans \autofac\src\Source\Autofac\Core\Résoudre\ResolveOperation.cs:la ligne 124 
à l'Autofac.De base.La résolution.InstanceLookup.ResolveComponent(IComponentRegistration enregistrement, IEnumerable`1 paramètres) dans \autofac\src\Source\Autofac\Core\Résoudre\InstanceLookup.cs:la ligne 115 
à l'Autofac.De base.Activateurs.De la réflexion.AutowiringParameter.c__DisplayClass2.b__0 () \autofac\src\Source\Autofac\Core\Activateurs\Réflexion\AutowiringParameter.cs:ligne 51 
à l'Autofac.De base.Activateurs.De la réflexion.ConstructorParameterBinding.Instancier () \autofac\src\Source\Autofac\Core\Activateurs\Réflexion\ConstructorParameterBinding.cs:ligne 113 
à l'Autofac.De base.Activateurs.De la réflexion.ReflectionActivator.ActivateInstance(IComponentContext contexte, IEnumerable`1 paramètres) dans \autofac\src\Source\Autofac\Core\Activateurs\Réflexion\ReflectionActivator.cs:la ligne 119 
à l'Autofac.De base.La résolution.InstanceLookup.Activer(IEnumerable`1 paramètres) dans \autofac\src\Source\Autofac\Core\Résoudre\InstanceLookup.cs:ligne 79 
à l'Autofac.De base.La résolution.InstanceLookup.b__0 () \autofac\src\Source\Autofac\Core\Résoudre\InstanceLookup.cs:ligne 64 
à l'Autofac.De base.La durée de vie.LifetimeScope.GetOrCreateAndShare(Guid id Func`1 créateur) dans \autofac\src\Source\Autofac\Core\durée de Vie\LifetimeScope.cs:ligne 269 
à l'Autofac.De base.La résolution.InstanceLookup.Execute () \autofac\src\Source\Autofac\Core\Résoudre\InstanceLookup.cs:ligne 64 
à l'Autofac.De base.La résolution.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration enregistrement, IEnumerable`1 paramètres) dans \autofac\src\Source\Autofac\Core\Résoudre\ResolveOperation.cs:la ligne 124 
à l'Autofac.De base.La résolution.ResolveOperation.ResolveComponent(IComponentRegistration enregistrement, IEnumerable`1 paramètres) dans \autofac\src\Source\Autofac\Core\Résoudre\ResolveOperation.cs:ligne 69 
à l'Autofac.De base.La résolution.ResolveOperation.Execute(IComponentRegistration enregistrement, IEnumerable`1 paramètres) dans \autofac\src\Source\Autofac\Core\Résoudre\ResolveOperation.cs:ligne 96 
à l'Autofac.De base.La durée de vie.LifetimeScope.ResolveComponent(IComponentRegistration enregistrement, IEnumerable`1 paramètres) dans \autofac\src\Source\Autofac\Core\durée de Vie\LifetimeScope.cs:la ligne 235 
à l'Autofac.De base.Le conteneur.ResolveComponent(IComponentRegistration enregistrement, IEnumerable`1 paramètres) dans \autofac\src\Source\Autofac\Core\Conteneur.cs:ligne 191 
à l'Autofac.ResolutionExtensions.TryResolveService(IComponentContext contexte, Service de Service de, IEnumerable`1 paramètres, Objet& instance) dans \autofac\src\Source\Autofac\ResolutionExtensions.cs:ligne 728 
à l'Autofac.ResolutionExtensions.ResolveService(IComponentContext contexte, Service de Service de, IEnumerable`1 paramètres) dans \autofac\src\Source\Autofac\ResolutionExtensions.cs:ligne 346 
à l'Autofac.ResolutionExtensions.Résoudre(IComponentContext contexte, le Type de serviceType, IEnumerable`1 paramètres) dans \autofac\src\Source\Autofac\ResolutionExtensions.cs:ligne 244 à Autofac.ResolutionExtensions.Résoudre[TService](IComponentContext contexte, IEnumerable`1 paramètres) dans \autofac\src\Source\Autofac\ResolutionExtensions.cs:la ligne 197 
à l'Autofac.ResolutionExtensions.Résoudre[TService](IComponentContext contexte, Parameter[] paramètres) dans \autofac\src\Source\Autofac\ResolutionExtensions.cs:la ligne 213 
public sealed class AuthorizationModule : Module
{
    protected override void Load(ContainerBuilder builder)
    {
        builder
        .Register(LoginService)
        .AsImplementedInterfaces()
        .SingleInstance();
    }

 static LoginService LoginService(IComponentContext c)
 {
     var file = c.Resolve<IFile>();
     var dataPath = <Some Path>;

     return new LoginService
     (readStream: () => file.Open(dataPath),
      writeStream: () => file.Create(dataPath));
 }
}


sealed class LoginService : TLoginService.Iface, IService
{
    readonly Func<Stream> _readStream;
    readonly Func<Stream> _writeStream;
    readonly XmlSerializer _serializer;

    public LoginService(
      Func<Stream> readStream,
      Func<Stream> writeStream
    )
    {
       Contract.Requires(readStream != null);
       Contract.Requires(writeStream != null);
       _readStream = readStream;
       _writeStream = writeStream;
       _serializer = new XmlSerializer(typeof (List<LoginRecord>));
 }
 ...
 ...

OriginalL'auteur theself | 2012-05-21