2つのコンストラクターパラメーターを受け取るFaxServiceクラスがあります。
public FaxService(string phone, IFaxProvider faxProvider)
Unityは、最初のパラメーターに文字列を送信し、2番目のパラメーターにIFaxProviderインスタンスを送信するようにどのように構成されていますか?文字列を提供する別のサービスを挿入できることに気付きましたが、FaxServiceコンストラクターパラメーターを変更する必要がないソリューションを探しています。
これは私がこれまでに持っているものです...
class Program
{
static void Main(string[] args)
{
var container = new UnityContainer();
var phone = "214-123-4567";
container.RegisterType<IFaxProvider, EFaxProvider>();
container.RegisterType<IFaxService, FaxService>(phone);
var fax = container.Resolve<IFaxService>();
}
}
public interface IFaxService { }
public interface IFaxProvider { }
public class FaxService : IFaxService
{
public FaxService(string phone, IFaxProvider faxProvider) { }
}
public class EFaxProvider : IFaxProvider { }
しかし、それは投げます...
Unity.Exceptions.ResolutionFailedException HResult = 0x80131500
メッセージ=依存関係の解決に失敗しました、タイプ= 'ConsoleApp3.IFaxService'、名前= '(なし)'。解決中に例外が発生しました。
var container = new UnityContainer();
var phone = "214-123-4567";
container.RegisterType<IFaxProvider, EFaxProvider>();
container.RegisterType<IFaxService, FaxService>(new InjectionConstructor(phone, typeof(IFaxProvider)));
var fax = container.Resolve<IFaxService>();
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加