Aracılığıyla paylaş


Verileri Önbelleğe Alma

Veriye çevrimdışı veya Microsoft Office Word ya da Microsoft Office Excel'i açmadan erişmek için belge düzeyi özelleştirmesinde veriyi önbelleğe alabilirsiniz.Nesneyi önbelleğine almak için, nesne belli gereksinimleri karşılayan veri türüne sahip olmalıdır..NET Framework'deki birçok ortak veri türleri, [T:System.StringT:System.Data.DataSet] ve DataTable dahil olmak üzere bu gereksinimleri kaşılar.

Uygulama hedefi: Bu konudaki bilgiler, şu uygulamalar için belge düzeyi projelere yöneliktir. Excel 2013 ve Excel 2010; Word 2013 ve Word 2010. Daha fazla bilgi edinmek için, bkz. Office Uygulaması ve Proje Türüne Göre Kullanılabilir Özellikler.

Veri önbelleğine nesne eklemek için iki yol vardır:

Nesneyi veri önbelleğine ekledikten sonra, Word veya Excel'i başlatmadan önbelleğe alınmış veriye erişebilir ve onu değiştirebilirsiniz.Daha fazla bilgi için bkz. Sunucudaki Belgelerde Verilere Erişme.

Önbelleğe Alınacak Veri Nesneleri için Gereksinimler

Çözümünüzdeki veri nesnesini önbelleğe almak için, nesne bu gereksinimleri karşılamalıdır:

  • Konak öğesinin okuma/yazma ortak alanı veya özelliği olma, örn. ThisDocument veya ThisWorkbook sınıfları.

  • Dizin oluşturucu veya diğer parametreli özellikler olmama.

Buna ek olarak, veri nesnesi XmlSerializer sınıfıyla seri hale getirilmeli, başka bir deyişle nesnenin türü bu özelliklere sahip olmalıdır:

  • Ortak tür olma.

  • Parametresiz ortak yapıcıya sahip olma.

  • Ek güvenlik ayrıcalıklarına gerek duymayan kodu yürütmeme.

  • Sadece okuma/yazma özelliklerini (diğer özelllikler yoksayılır) ortaya çıkarma.

  • Çok boyutlu dizileri ortaya çıkarmama (iç içe diziler kabul edilir).

  • Özelliklerden ve alanlardan arayüzleri döndürmemek.

  • IDictionary koleksiyonsa onu uygulamama.

Veri nesnesini önbelleğe aldığınızda, Office çalışma zamanı için Visual Studio Araçları, belgede özel XML bölümü'nde saklanan XML dizesine nesneyi seri hale getirir. Daha fazla bilgi için bkz. Özel XML Bölümlerine Genel Bakış.

Önbelleğe Alınan Veri Boyutunun Sınırları

Belgede veri önbelleğine ekleyebileceğiniz toplam veri miktarında ve veri önbelleğindeki herhangi tek bir nesnenin boyutunda bazı sınırlamalar vardır. Eğer bu sınırları geçerseniz, veri, veri önbelleğine kaydedildikten sonra uygulamanız beklenmedik bir şekilde kapanabilir.

Bu sınırlamalarla karşılamamak için, şu kılavuzları takip edin:

  • Veri önbelleğine 10MB'tan daha büyük bir nesne eklemeyin.

  • Tek belgedeki veri önbelleğine toplamda 100 MB'tan daha büyük veri eklemeyin.

Bunlar yaklaşık değerlerdir.Tam sınırlamalar, kullanılabılır RAM ve çalışan işlemlerin sayısı dahil olmak üzere bazı etkenlere bağlıdır.

Önbelleğe Alınan Nesnelerin Davranışlarını Denetleme

Önbelleğe alınan nesnelerin davranışları üzerinde daha fazla denetim kazanmak için, önbelleğe alınmış nesnenin türü üzerinde ICachedType arayüzünü uygulayabilirsiniz.Örneğin, eğer nesne değiştiğinde kullanıcıya nasıl bildirildiğini denetlemek istiyorsanız bu arayüzü uygulayabilirsiniz.ICachedType'ın nasıl uygulandığını gösteren kod örnekleri için, Office Geliştirme Örnekleri ve İzlenecek Yollar bağlantısındaki Excel Dinamik Denetimler Örneği ve Word Dinamik Denetimler Örneğindeki ControlCollection sınıfına bakın.

Parola Korumalı Belgelerde Önebelleğe Alınmış Verideki Kalıcı Değişiklikler

Eğer belgedeki veri nesneleri bir parola ile korunuyorsa, önbelleğe alınan verideki değişiklikler kaydedilmez.Önbelleğe alınmış verideki değişiklikleri iki yöntemi geçersiz kılarak kaydedebilirsiniz. Belge kaydedildiğinde parolayı kaldırmak için bu yöntemleri geçersiz kılın ve kaydetme işlemi tamamlandıktan sonra korumayı yeniden uygulayın.

Daha fazla bilgi için bkz. Nasıl Yapılır: Parola Korumalı Belgede Veriyi Önbelleğe Alma.

Veri Önbelleğine Boş Değerler Eklerken Veri Kaybını Engelleme

Veri önbelleğine nesneler eklediğinizde, önbelleğe alınmış nesnelerin tümü, belge kaydedilip kapatılmadan önce null olmayan bir değere atanır.Eğer herhangi bir önbelleğe alınmış nesne null değerine sahipse, belge kaydedilip kapatıldığında, Office çalışma zamanı için Visual Studio Araçları otomatik olarak veri önbelleğinden önbelleğe alınmış bütün nesneleri kaldırır.

Tasarım anında CachedAttribute özniteliğini kullanarak null değeri ile bir nesneyi veri önbelleğine eklerseniz, belge açılmadan önce önbelleğe alınmış veri nesnelerini başlatmak için ServerDocument sınıfını kullanabilirsiniz.Belge son kullanıcı tarafından açılmadan önce, Word veya Excel yüklemeden önbelleğe alınmış veriyi sunucuda başlatmak istiyorsanız, bu yararlıdır.Daha fazla bilgi için bkz. Sunucudaki Belgelerde Verilere Erişme.

Ayrıca bkz.

Görevler

Nasıl Yapılır: Çevrimdışı veya Sunucuda Kullanmak Üzere Verileri Önbelleğe Alma

Nasıl Yapılır: Veri Kaynağını Programlamayla Office Belgesinden Önbelleğe Alma

Nasıl Yapılır: Parola Korumalı Belgede Veriyi Önbelleğe Alma

İzlenecek Yol: Önbellekteki Veri Kümesini Kullanarak Ana Öğe/Ayrıntı İlişkisi Oluşturma