3

私の StructureMap 構成は次のようになります。

container.Configure(x => x.For<IStreamWrap>().Use<FileStreamWrap>().SelectConstructor(() => new FileStreamWrap("", System.IO.FileMode.Open));

FileStreamWrapのインスタンスを取得して、2 つの引数を渡そうとしています。

stream = container.With("path").EqualTo(path).With("mode").EqualTo(System.IO.FileMode.Open).GetInstance<IStreamWrap>();

しかし、このメッセージで例外が発生し、2 つの引数を持つコンストラクターを使用するように明示的に指示したのに、なぜ StructureMap がまだ最も多くの引数を持つコンストラクターを選択するのかわかりません ( FileStreamWrap(string path, System.IO.FileMode mode))

Unable to create a build plan for concrete type SystemWrapper.IO.FileStreamWrap

new FileStreamWrap(String path, FileMode mode, FileSystemRights rights, FileShare share, Int32 bufferSize, FileOptions options, FileSecurity)
  ┣ String path = Value: path
  ┣ FileMode mode = Value: Open
  ┣ FileSystemRights rights = Required primitive dependency is not explicitly defined
  ┣ FileShare share = Required primitive dependency is not explicitly defined
  ┣ Int32 bufferSize = Required primitive dependency is not explicitly defined
  ┣ FileOptions options = Required primitive dependency is not explicitly defined
  ┗ FileSecurity = **Default**

アドバイスをいただければ幸いです。

4

0 に答える 0