Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makale, bu API'nin başvuru belgelerine ek açıklamalar sağlar.
DataContractAttribute özniteliğini, DataContractSerializer tarafından serileştirme ve seri durumdan çıkarma işlemlerinde kullanılan türlere (sınıflar, yapılar veya numaralandırmalar) uygulayın. Windows Communication Foundation (WCF) altyapısını kullanarak ileti gönderiyor veya alıyorsanız, iletilerde gönderilen verileri tutan ve işleyen tüm sınıflara DataContractAttribute'yi de uygulamanız gerekir. Veri sözleşmeleri hakkında daha fazla bilgi için bkz. Veri Sözleşmelerini Kullanma.
ayrıca, serileştirmek istediğiniz değerleri barındıran herhangi bir alana, özelliğe veya olaya da uygulamanız DataMemberAttribute gerekir. DataContractAttribute uygulayarak, verileri seri hale getirmek ve seri durumdan çıkarmak için DataContractSerializer öğesini açıkça etkinleştirirsiniz.
Dikkat
öğesini özel alanlara uygulayabilirsiniz DataMemberAttribute . Alan tarafından döndürülen verilerin (özel olsa bile) serileştirilip ters serileştirildiğini ve bu nedenle kötü amaçlı bir kullanıcı veya işlem tarafından görüntülenebileceğini veya araya girilebileceğini unutmayın.
Veri sözleşmeleri hakkında daha fazla bilgi için Veri Sözleşmelerini Kullanma başlığı altında listelenen konulara bakın.
Veri sözleşmeleri
Veri sözleşmesi, her alan için bir ad ve veri türüne sahip bir alan kümesinin soyut açıklamasıdır. Veri sözleşmesi, farklı platformlardaki hizmetlerin birlikte çalışabilmesi için tek bir uygulamanın dışında yer alır. Hizmetler arasında geçirilen veriler aynı sözleşmeye uygun olduğu sürece tüm hizmetler verileri işleyebilir. Bu işleme , gevşek bir şekilde bağlanmış bir sistem olarak da bilinir. Veri sözleşmesi, bir uygulama tarafından işlenebilmesi için verilerin nasıl teslim edilmesi gerektiğini belirten bir arabirime de benzer. Örneğin, veri sözleşmesi "Ad" ve "Soyadı" adlı iki metin alanı olan "Kişi" adlı bir veri türünü çağırabilir. Veri sözleşmesi oluşturmak için, `DataContractAttribute`'yı sınıfa ve `DataMemberAttribute`'yi seri hale getirilmesi gereken tüm alanlara veya özelliklere uygulayın. Veriler seri hale getirildiğinde, türe örtük olarak yerleştirilen veri sözleşmesine uygundur.
Uyarı
Veri sözleşmesi, devralma davranışındaki gerçek bir arabirimden önemli ölçüde farklıdır. Arayüzler, türetilmiş türler tarafından devralınır. bir temel sınıfa uyguladığınızda DataContractAttribute , türetilen türler özniteliğini veya davranışını devralmaz. Ancak türetilmiş bir türün veri sözleşmesi varsa, temel sınıfın veri üyeleri seri hale getirilir. Ancak, bunları serileştirilebilir hale getirmek için türetilmiş bir sınıftaki yeni üyelere uygulamanız DataMemberAttribute gerekir.
XML şema belgeleri ve SvcUtil aracı
Diğer hizmetlerle veri alışverişinde bulunuyorsanız, veri sözleşmesini açıklamanız gerekir. geçerli sürümü DataContractSerializeriçin, veri sözleşmelerini tanımlamak için bir XML şeması kullanılabilir. (Diğer meta veri/açıklama biçimleri aynı amaçla kullanılabilir.) Uygulamanızdan XML şeması oluşturmak için ServiceModel Meta Veri Yardımcı Programı Aracı'nı (Svcutil.exe)/dconly komut satırı seçeneğiyle kullanın. Araca giriş bir derleme olduğunda, araç varsayılan olarak bu derlemede bulunan tüm veri sözleşmesi türlerini tanımlayan bir XML şemaları kümesi oluşturur. Buna karşılık, veri sözleşmeleri tarafından ifade edilebilen yapıları kullanan XML şemalarının gereksinimlerine uygun Visual Basic veya C# sınıf tanımları oluşturmak için Svcutil.exe aracını da kullanabilirsiniz. Bu durumda , /dconly komut satırı seçeneği gerekli değildir.
Svcutil.exe aracının girişi bir XML şemasıysa, araç varsayılan olarak bir sınıf kümesi oluşturur. Bu sınıfları incelediğinizde, DataContractAttribute öğesinin uygulandığını fark edersiniz. Bu sınıfları, diğer hizmetlerle alışveriş yapılması gereken verileri işlemek üzere yeni bir uygulama oluşturmak için kullanabilirsiniz.
Windows Communication Foundation (WCF) istemcisi oluşturmak üzere kodu ve yapılandırmayı otomatik olarak oluşturmak için aracı Web Hizmetleri Açıklama Dili (WSDL) belgesi döndüren bir uç noktada da çalıştırabilirsiniz. Oluşturulan kod ile DataContractAttributeişaretlenmiş türleri içerir.
Mevcut türleri yeniden kullanma
Veri sözleşmesinin iki temel gereksinimi vardır: kararlı bir ad ve üye listesi. Sözleşmenin sabit adı, ad alanının tekdüzen kaynak tanımlayıcısı (URI) ve yerel adından oluşur. Varsayılan olarak, bir sınıfa uyguladığınızda DataContractAttribute , yerel ad olarak sınıf adını ve ad alanı URI'si olarak sınıfın ad alanını (ön ekli "http://schemas.datacontract.org/2004/07/") kullanır. ve Name özelliklerini ayarlayarak Namespace varsayılanları geçersiz kılabilirsiniz.
ContractNamespaceAttribute öğesini ad alanına uygulayarak ad alanını da değiştirebilirsiniz. Verileri tam olarak istediğiniz gibi işleyen ancak veri sözleşmesinden farklı bir ad alanı ve sınıf adına sahip olan mevcut bir türünüz varsa bu özelliği kullanın. Varsayılan değerleri geçersiz kılarak mevcut türünüzü yeniden kullanabilir ve serileştirilmiş verilerin veri sözleşmesine uygun olmasını sağlayabilirsiniz.
Uyarı
Herhangi bir kodda, DataContract yerine daha kısa olan DataContractAttribute kelimesini kullanabilirsiniz.
Sürüm oluşturma
Veri sözleşmesi, kendisinin sonraki sürümlerini de barındırabilir. Başka bir ifadeyle, sözleşmenin daha sonraki bir sürümünde ek veriler bulunduğunda bu veriler depolanır ve bir gönderene dokunulmadan döndürülür. Bunu yapmak için arabirimini IExtensibleDataObject uygulayın.
Sürüm oluşturma hakkında daha fazla bilgi için bkz. Veri Sözleşmesi Sürüm Oluşturma.