2009-07-07 5 views
0

Je suis en train d'enregistrer la classe suivante à l'aide de l'interface fluide:L'enregistrement d'un composant qui nécessite un paramètre de constructeur qui est un type de béton qui n'a pas d'interface

public class DirectorySync : IDirectorySync 
{ 
    public DirectorySync(DirectoryInfo sourceDir, DirectoryInfo targetDir) 
    { 
    _sourceDirectory = sourceDir; 
    _targetDirectory = targetDir; 
    } 
} 

Comment puis-je faire pour spécifier les instances DirectoryInfo? Ils doivent être:

var sourceDirectory = new DirectoryInfo("some known file path"); 
var installationDirectory = new DirectoryInfo("some other known file path"); 

C'est ce que j'ai jusqu'à présent:

_container.Register(Component 
    .For<IDirectorySync>() 
    .ImplementedBy<DirectorySync>() 
    .Parameters(Parameter.ForKey("sourceDir").Eq(???)) 
    .Parameters(Parameter.ForKey("targetDir").Eq(???)) 
    .LifeStyle.Is(LifestyleType.Transient)); 

Répondre

1

Got it!

_container.Register(Component 
       .For<IDirectorySync>() 
       .ImplementedBy<DirectorySync>() 
       .LifeStyle.Is(LifestyleType.Transient) 
       .DependsOn(new 
          { 
           sourceDir = new DirectoryInfo("some known file path"), 
           targetDir = new DirectoryInfo("some other known file path") 
          }) 
       ); 
+0

Oui, précisément. –

Questions connexes