Nesnelerimin oluşturulmasını yönetmek için Unity'yi almaya çalışıyorum ve çalışma zamanına kadar bilinmeyen bazı başlatma parametrelerine sahip olmak istiyorum:
Şu anda bunu yapmanın tek yolu arayüzde bir Init yöntemine sahip olmak.
interface IMyIntf {
void Initialize(string runTimeParam);
string RunTimeParam { get; }
}
Sonra onu kullanmak için (Unity'de) şunu yapardım:
var IMyIntf = unityContainer.Resolve<IMyIntf>();
IMyIntf.Initialize("somevalue");
Bu senaryoda runTimeParam
, kullanıcı girdisine göre çalışma zamanında param belirlenir. Buradaki önemsiz durum basitçe değerini döndürür, runTimeParam
ancak gerçekte parametre dosya adı gibi bir şey olacaktır ve başlatma yöntemi dosya ile bir şeyler yapacaktır.
Bu, Initialize
yöntemin arayüzde mevcut olması ve birden çok kez çağrılabilmesi gibi bir dizi sorun yaratır . Uygulamada bir bayrak ayarlamak ve tekrarlanan çağrıda istisna atmak çok Initialize
hantal görünüyor.
Arayüzümü çözdüğüm noktada, uygulamasına ilişkin hiçbir şey bilmek istemiyorum IMyIntf
. Yine de istediğim, bu arayüzün belirli bir seferlik başlatma parametrelerine ihtiyaç duyduğu bilgisidir. Bu bilgilerle arayüze bir şekilde açıklama eklemenin (öznitelikler?) Ve nesne oluşturulduğunda bunları çerçeveye aktarmanın bir yolu var mı?
Düzenleme: Arayüzü biraz daha açıkladı.