XAML Hizmetleri
Bu konuda .NET XAML Hizmetleri olarak bilinen bir teknoloji kümesinin özellikleri açıklanmaktadır. Açıklanan hizmetlerin ve API 'lerin çoğunluğu derlemede bulunur System.Xaml . Hizmetler okuyucuları ve yazarları, şema sınıflarını ve şema desteğini, fabrikaları, Attributing of sınıfları, XAML dil iç desteğini ve diğer XAML dil özelliklerini içerir.
Bu belge hakkında
.net xaml hizmetleri için kavramsal belgeler, XAML dili ile önceki deneyiminizin olduğunu ve örneğin Windows Presentation Foundation (WPF) veya Windows Workflow Foundation ya da belirli bir teknoloji özelliği alanı gibi belirli bir framework için nasıl uygulanabileceğini varsayar; örneğin, içindeki yapı özelleştirme özellikleri Microsoft.Build.Framework.XamlTypes . Bu belge, XAML temel bilgilerini biçimlendirme dili, XAML sözdizimi terimleri veya diğer tanıtım malzemeleri olarak açıklamaya çalışır. Bunun yerine, bu belgeler özel olarak System. xaml derleme kitaplığı 'nda etkinleştirilen .NET XAML Hizmetleri kullanılarak odaklanmıştır. Bu API 'lerin çoğu XAML dil tümleştirmesi ve genişletilebilirlik senaryoları içindir. Bu, aşağıdaki senaryolardan birini içerebilir:
Temel XAML okuyucuları veya XAML yazıcılarının yeteneklerini genişletme (XAML düğüm akışını doğrudan işleme; kendi XAML okuyucunuzu veya XAML yazıcınızı türeten türetme).
Özel çerçeve bağımlılıkları olmayan XAML ile kullanılabilir özel türleri tanımlama ve XAML tür sistemi özelliklerini .NET XAML hizmetlerine iletmek için türler Attributing.
Xaml okuyucuları veya XAML yazıcılarını, XAML biçimlendirme kaynakları için görsel tasarımcı veya etkileşimli düzenleyici gibi bir uygulamanın bileşeni olarak barındırma.
XAML değer dönüştürücüleri yazma (biçimlendirme uzantıları; özel türler için tür dönüştürücüler).
Özel bir XAML şeması bağlamı tanımlama (tür kaynaklarını yedeklemek için alternatif derleme yükleme teknikleri kullanarak) her zaman derlemeleri yansıtma yerine bilinen türler arama tekniklerini kullanarak, ortak dil çalışma zamanını (CLR)
AppDomainve ilişkili güvenlik modelini kullanmayan yüklenmiş derleme kavramlarını kullanın.Temel XAML tür sistemini genişletme.
LookupInvokerXaml tür sistemini ve tür geri ayarlarını etkilemek için veya tekniklerini kullanma.
XAML 'de bir dil olarak tanıtım malzemesini arıyorsanız xaml 'ye Genel Bakış (WPF .net)deneyebilirsiniz. bu konu, hem Windows Presentation Foundation (WPF) hem de xaml biçimlendirme ve xaml dil özelliklerini kullanmak için yeni olan bir hedef kitle için xaml 'yi açıklamaktadır. Başka bir faydalı belge, xaml dili belirtimindetanıtım malzemeleridir.
.NET XAML Hizmetleri ve System.Xaml .NET mimarisi
.NET XAML Hizmetleri ve System.Xaml derlemesi, xaml dil özelliklerini desteklemek için gerekli olan kadarını tanımlar. Bu, XAML okuyucuları ve XAML yazarları için temel sınıflar içerir. Framework 'e özgü XAML uygulamalarında mevcut olmayan .NET XAML hizmetlerine eklenen en önemli özellik, XAML için bir tür sistemi gösterimidir. Tür sistemi temsili, XAML 'nin belirli özellikleri üzerinde bağımlılıklar almadan XAML özelliklerini ortalar.
XAML tür sistemi, XAML başlangıcının biçimlendirme formu veya çalışma zamanı özellikleri ile sınırlı değildir; Ayrıca, belirli bir yedekleme türü sistemiyle sınırlıdır. XAML tür sistemi türler, Üyeler, XAML şema bağlamları, XML düzeyi kavramlar ve diğer XAML dil kavramları ya da XAML iç bilgileri için nesne temsillerini içerir. XAML türü sisteminin kullanılması veya genişletilmesi, XAML okuyucuları ve XAML yazarları gibi sınıflardan türetebilir ve XAML temsillerini bir çerçeve, teknoloji ya da XAML tüketen ya da yayan bir uygulama tarafından etkinleştirilen belirli özelliklerle genişletmenizi sağlar. XAML şeması bağlamı kavramı, bir XAML nesne yazıcı uygulamasının birleşiminden, bir teknolojinin, bağlam içindeki derleme bilgileri ile iletilen bir teknoloji yedekleme türü sistemi ve XAML düğüm kaynağı aracılığıyla pratik nesne grafı yazma işlemlerine izin vermez. XAML şeması kavramı hakkında daha fazla bilgi için. bkz. varsayılan xaml şeması bağlamı ve WPF XAML şema bağlamı.
xaml düğüm Akışlar, xaml okuyucuları ve xaml yazarları
.NET XAML Hizmetleri 'nin xaml dili ve bir dil olarak XAML kullanan özel teknolojiler arasındaki ilişkide oynadığı rolü anlamak için, bir XAML düğüm akışı kavramını ve bu kavramın API ve terminolojiyi nasıl şekillendirildiğinden anlaşılması yararlı olur. Xaml düğüm akışı, xaml dil temsili ve XAML tarafından temsil edilen veya tanımladığı nesne grafı arasındaki kavramsal bir ara bir ara değer.
XAML okuyucu, bazı biçimdeki XAML 'yi işleyen ve XAML düğüm akışı üreten bir varlıktır. API 'de, bir XAML okuyucusu temel sınıf tarafından temsil edilir XamlReader .
XAML yazıcı, XAML düğüm akışını işleyen ve başka bir şey üreten bir varlıktır. API 'de, XAML yazıcı temel sınıf tarafından temsil edilir XamlWriter .
XAML ile ilgili en yaygın iki senaryo, nesne grafiğinin örneğini oluşturmak ve bir uygulama ya da araçtan bir nesne grafiğini kaydetmek ve bir XAML temsili (genellikle biçimlendirme formu metin dosyası olarak kaydedilir) üretmek için XAML 'yi yüklüyor. XAML yüklemek ve bir nesne grafiğinin oluşturulması, genellikle bu belgelerde yükleme yolu olarak adlandırılır. Varolan bir nesne grafiğinin XAML 'ye kaydedilmesi veya serileştirilmesi, genellikle bu belgelerde kaydetme yolu olarak adlandırılır.
En yaygın yükleme yolu türü aşağıdaki gibi açıklanabilir:
UTF kodlu XML biçiminde bir XAML temsili ile başlayın ve metin dosyası olarak kaydedilir.
XAML 'yi içine yükleyin XamlXmlReader . XamlXmlReader bir XamlReader alt sınıfıdır.
Sonuç bir XAML düğüm akışıdır. API kullanarak xaml düğüm akışının bağımsız düğümlerine erişebilirsiniz XamlXmlReader / XamlReader . Burada en sık kullanılan işlem, XAML düğüm akışı aracılığıyla ilerleyecek ve "geçerli kayıt" metaphor kullanılarak her bir düğümün işlenmesine yönelik olur.
XAML düğüm akışından elde edilen düğümleri bir API 'ye geçirin XamlObjectWriter . XamlObjectWriter bir XamlWriter alt sınıfıdır.
XamlObjectWriterKaynak xaml düğüm akışı aracılığıyla ilerlemeye uygun olarak bir nesne grafı, tek seferde bir nesne yazar. Nesne yazma, bir XAML şema bağlamı ve bir yedekleme türü sisteminin ve çerçevesinin derlemelerine ve türlerine erişebilen bir uygulama hakkında yardım ile yapılır.
ResultNesne grafiğinin kök nesnesini elde etmek IÇIN xaml düğüm akışının sonunda çağırın.
En yaygın kaydetme yolu türü aşağıdaki gibi açıklanabilir:
Tüm uygulama çalışma zamanı, Kullanıcı arabirimi içeriği ve çalışma zamanının durumu ya da çalışma zamanında genel uygulamanın nesne gösteriminin daha küçük bir kesimini başlatın.
Uygulama kökü veya belge kökü gibi mantıksal bir başlangıç nesnesinden nesneleri içine yükleyin XamlObjectReader . XamlObjectReader bir XamlReader alt sınıfıdır.
Sonuç bir XAML düğüm akışıdır. Ve API kullanarak XAML düğüm akışının tek düğümlerine erişebilirsiniz XamlObjectReaderXamlReader . Burada en sık kullanılan işlem, XAML düğüm akışı aracılığıyla ilerleyecek ve "geçerli kayıt" metaphor kullanılarak her bir düğümün işlenmesine yönelik olur.
XAML düğüm akışından elde edilen düğümleri bir API 'ye geçirin XamlXmlWriter . XamlXmlWriter bir XamlWriter alt sınıfıdır.
XamlXmlWriterXaml 'yi BIR XML UTF kodlamasıyla yazar. Bunu bir metin dosyası olarak, akış olarak veya diğer formlarda kaydedebilirsiniz.
FlushNihai çıktıyı elde etmek için çağırın.
XAML düğüm akışı kavramları hakkında daha fazla bilgi için bkz. xaml düğüm akışı yapılarını ve kavramlarını anlama.
XamlServices sınıfı
XAML düğüm akışıyla uğraşmak her zaman gerekli değildir. Temel bir yükleme yolu veya temel bir kayıt yolu istiyorsanız, sınıfında API 'Leri kullanabilirsiniz XamlServices .
LoadBir yükleme yolu uygulayan çeşitli imzalar. Bir dosya veya akış yükleyebilir veya bir veya yükleyebilir ya da XmlReaderTextReaderXamlReader Bu okuyucunun API 'LERI ile yükleyerek xaml girişinizi sardırabilirsiniz.
SaveBir nesne grafiğini kaydetme ve akış, dosya veya örnek olarak çıkış üreten çeşitli imzalar XmlWriter/TextWriter .
Transform bir yükleme yolu ve kayıt yolunu tek bir işlem olarak bağlayarak XAML 'yi dönüştürür. Ve için farklı bir şema bağlamı ya da farklı bir yedekleme türü sistemi kullanılabilir XamlReader ve XamlWriter Bu, sonuçta elde edilen xaml 'in nasıl dönüştürüldüğünü etkiler.
' Nin nasıl kullanılacağı hakkında daha fazla bilgi için XamlServices bkz. XamlServices.
XAML tür sistemi
XAML tür sistemi, bir XAML düğüm akışının belirli bir düğümüyle çalışması için gerekli olan API 'Leri sağlar.
XamlType bir nesnenin temsili-bir başlangıç nesnesi düğümü ve son nesne düğümü arasında ne işleriniz.
XamlMember bir nesnenin bir üyesinin temsili-bir başlangıç üyesi düğümü ve son üye düğümü arasında ne işleriniz.
Ve gibi API 'Ler ve GetAllMembersGetMemberDeclaringType arasındaki ilişkileri rapor edin XamlTypeXamlMember .
XAML türü sisteminin .NET XAML Hizmetleri tarafından uygulanan varsayılan davranışı, ortak dil çalışma zamanı (CLR) ve yansıma kullanılarak derlemelerdeki CLR türlerinin statik analizini temel alır. Bu nedenle, belirli bir CLR türü için XAML türü sisteminin varsayılan uygulanması, bu tür ve üyelerinin XAML şemasını ortaya çıkarır ve XAML tür sistemi açısından rapor edebilir. Varsayılan XAML tür sisteminde, türlerin tür kullanımını CLR devralmayla eşleştirmekte ve örneklerin, değer türlerinin ve benzerliğine ilişkin kavramlar, CLR 'nin destekleyici davranışlarına ve özelliklerine de eşlenir.
XAML dil özellikleri için başvuru
XAML 'yi desteklemek için, .NET XAML Hizmetleri xaml dili XAML ad alanı için tanımlanan belirli XAML dil kavramlarının uygulanmasını sağlar. Bunlar, belirli başvuru sayfaları olarak belgelenmiştir. Dil özellikleri, .NET XAML Hizmetleri tarafından tanımlanan bir XAML okuyucusu veya XAML yazıcı tarafından işlendiğinde bu dil özelliklerinin nasıl davranacağını gösteren perspektifinden belgelenmiştir. Daha fazla bilgi için bkz. xaml ad alanı (x:) Dil özellikleri.