私はいくつかのプロパティを持つIAddressクラスを持っています。私はこのインターフェイスを実装する具体的な型を持っています。この具体的な型には、私が使用できるいくつかの異なるコンストラクタがあります。実行時にこれらのコンストラクタのいずれかにパラメータ値を渡すにはどうすればよいですか?この具体的なタイプを複数回、パラメータ値が異なるたびに再利用するため、設定ファイルを使用することはできません。Castle Windsorがコンストラクタパラメータを渡しています
IWindsorContainer container = new WindsorContainer(new XmlInterpreter());
IAddress address = container.Resolve<IAddress>();
public interface IAddress
{
string Address1 { get; set; }
string Address2 { get; set; }
string City { get; set; }
string State { get; set; }
string ZipCode { get; set; }
}
class TestAddress : IAddress
{
private string _address1;
private string _address2;
private string _city;
private string _countyName;
private string _state;
private string _zipCode;
public string Address1
{
get { return _address1; }
set { _address1 = value; }
}
public string Address2
{
get { return _address2; }
set { _address2 = value; }
}
public string City
{
get { return _city; }
set { _city = value; }
}
public string State
{
get { return _state; }
set { _state = value; }
}
public string ZipCode
{
get { return _zipCode; }
set { _zipCode = value; }
}
public string CountyName
{
get { return _countyName; }
set { _countyName = value; }
}
public MelissaAddress(string address1, string address2, string city, string state, string zipcode)
{
Address1 = address1;
Address2 = address2;
City = city;
State = state;
ZipCode = zipcode;
}
public MelissaAddress(string address1, string address2, string zipcode) : this(address1, address2, null, null, zipcode)
{ }
public MelissaAddress(string address1, string address2, string city, string state) : this(address1, address2, city, state, null)
{ }
}
これはあなたの実際のコードまたは単にいくつかのサンプルですか? new()の代わりにコンテナを使用しているようです。 –
登録時または解決時にパラメータを指定しますか? –
解決時間にパラメータを指定したいと思います。別のアドレスを持つ2つのアドレスクラスが必要な場合は、コンストラクタの各クラスに値を渡したいと思います。 –