Birden çok arabirimi uygulayan bir sınıfa sahibim. Bu arayüzleri XML ile kaydetmek istiyorum. Tüm bulduğum yeni Fluent Arayüzü için belgelidir. Bu seçenek XML ile destekleniyor mu? Bu özellik eklenirken neler olabilir?Castle-Windsor XML yapılandırması yoluyla ForwardedTypes'i destekliyor
cevap
[Güncelleştirme] Bu, şu anda Windsor 2.1 veya daha yeni sürümlerde mümkündür. Sözdizimi here belgelerine bakın.
Bu özellik .. itibarıyla XML tercüman uygulanan henüz edilmemiştir ancak bir tesis aracılığı desteği eklemek zor değil devamsızlık diğer özellikler eklemek isteyen zaman (tabii ki bu teknik de yararlıdır mevcut yapılandırma ayrıştırıcısı).
Yani ilk kapalı bir işleyici bir türü için oluşturulduğunda algılar bir tesis ekleyebilir ve bunların mevcut işleyicisi işaret böylece aynı anda iletilmesini hizmetlerden herhangi kaydeder:
public class HandlerForwardingFacility : AbstractFacility
{
IConversionManager conversionManager;
protected override void Init()
{
conversionManager = (IConversionManager)Kernel.GetSubSystem(SubSystemConstants.ConversionManagerKey);
Kernel.HandlerRegistered += new HandlerDelegate(Kernel_HandlerRegistered);
}
void Kernel_HandlerRegistered(IHandler handler, ref bool stateChanged)
{
if (handler is ForwardingHandler) return;
var model = handler.ComponentModel;
if (model.Configuration == null) return;
var forward = model.Configuration.Children["forward"];
if (forward == null) return;
foreach (var service in forward.Children)
{
Type forwardedType = (Type)conversionManager.PerformConversion(service, typeof (Type));
Kernel.RegisterHandlerForwarding(forwardedType, model.Name);
}
}
}
Şimdi
public interface IDog
{
void Bark();
}
public interface IDuck
{
void Quack();
}
public class Mutant : IDog, IDuck
{
public void Bark()
{
Console.WriteLine("Bark");
}
public void Quack()
{
Console.WriteLine("Quack");
}
}
aslında yapılandırmak için: IDuck ve iDog - ve sonra tabii ki bu örneğin iki ayrı hizmetlerini destekleyen bir mutant ördek/köpek bileşenini geçireceğim, kodda bu faydalanmak gerekir kapsayıcı:
<castle>
<facilities>
<facility id="facility.handlerForwarding" type="Example.Facilities.HandlerForwardingFacility, Example" />
</facilities>
<components>
<component id="mutant" service="Example.IDog, Example" type="Example.Mutant, Example">
<forward>
<service>Example.IDuck, Example</service>
</forward>
</component>
</components>
</castle>
Ve şimdi mutlu böyle bir test çalıştırabilirsiniz: Bu yardımcı olur
WindsorContainer container = new WindsorContainer(new XmlInterpreter());
var dog = container.Resolve<IDog>();
var duck = container.Resolve<IDuck>();
Assert.AreSame(dog, duck);
Umut.
- 1. iPhone, XML-RPC'yi destekliyor mu?
- 2. SpringSocial XML Yapılandırması Şema Hatası
- 3. Groovy yoluyla Java'da XML ayrıştırma
- 4. XML Yapılandırması kullanılarak Hazırda Beklemenin Eşleştirilmesi
- 5. Yay ile birlikte xml ve java yapılandırması
- 6. Girintiler yoluyla XLS Hücreleri'nden XML dosyası oluşturma
- 7. yapılandırması
- 8. Log4Net'te XML yapılandırması Öncelik Seviye ile aynı şey midir?
- 9. Hadoop yapılandırması xml bilgisini api kullanarak kullanma api
- 10. Harici bir fasulye yapılandırması xml dosyasını kaynaklara aktarmak mümkün mü?
- 11. Özniteliklerle apache commons yapılandırması kullanarak XML öğelerini sorgula xpath
- 12. Bilgi notlu görevler için Spring @Configuration (xml yapılandırması olmayan)
- 13. simpleframework yoluyla ebeveyn olmadan elemanların listesi ile XML Ayrıştırma nasıl
- 14. Android Studio lint.xml yapılandırması
- 15. LLVM veya GCC yoluyla WinRT'yi Hedefleme
- 16. Akıcı log4net yapılandırması
- 17. SMTP yapılandırması
- 18. ReSharper yapılandırması?
- 19. log4j yapılandırması
- 20. JConsole Yapılandırması
- 21. “Log4j: yapılandırması” eşleşmelidir “(oluşturucu ... .loggerFactory))?”
- 22. programlama yoluyla
- 23. piton yoluyla
- 24. Yükleme ve Sorgulama Web Yapılandırması
- 25. prerender.io IIS yapılandırması
- 26. Monodevelop yapılandırma dosyalarını destekliyor mu?
- 27. $ {basedir} NLog yapılandırması neden çalışmıyor?
- 28. LevelDB java'yı destekliyor mu?
- 29. jsoup xpath'i destekliyor mu?
- 30. TableQuery, OrderBy'yi destekliyor mu?
Sadece bildiğiniz gibi, şimdi çerçeve içinde pişiriliyor. –
@Krzysztof: Bu işlevselliğe ihtiyacım var ve tekerleği yeniden icat etmemeyi tercih ediyorum. Ne yazık ki, bu konuda hiçbir şey bulamıyor. Xml yapılandırmasıyla yerleşik tip iletme ile ilgili herhangi bir belge veya bağlantı var mı? –
johny g - şu belgede bulunmaktadır: http://www.castleproject.org/container/documentation/v21/manual/windsorconfigref.html –