Kullanıcının çalışma zamanında farklı donanımlar arasında seçim yapabileceği bir senaryo var. Arka planda, tümü IHardware
arabirimini uygulayan birkaç farklı donanım sınıfımız var. Bu arayüz için seçili donanım örneğini kaydetmek için Unity'yi kullanmak istiyoruz. Ancak, kullanıcı başka bir donanım seçtiğinde, bu kayıt işlemini çalışma zamanında değiştirmemizi gerektirecektir. Birlik: Kayıtlı türü çalışma zamanında başka bir türle değiştir
public interface IHardware
{
// some methods...
}
public class HardwareA : IHardware
{
// ...
}
public class HardwareB : IHardware
{
// ...
}
container.RegisterInstance<IHardware>(new HardwareA());
// user selects new hardware somewhere in the configuration...
// the following is invalid code, but can it be achieved another way?
container.ReplaceInstance<IHardware>(new HardwareB());
bu davranış bir şekilde elde edilebilir:
Aşağıdaki örnek
bu daha net hale getirebilir?BTW: Kapsayıcıdan zaten çözümlenmiş olan durumların elbette yeni örneklerle değiştirilmeyeceğinin tamamen farkındayım. Kendimizi, örneği bir kez daha çözmeyi zorlayarak kendimize bakacağız.
tarihinde HardwareB retreive olacak/o deneyin. Çok teşekkürler! – gehho