Share via


Nasıl yapılır: XmlSerializer Kullanarak WCF İstemci Uygulamalarının Başlangıç Zamanlarını İyileştirme

Çalışma zamanında bu veri türleri için seri hale getirme ve derleme kodunu kullanarak XmlSerializer seri hale getirilebilen veri türlerini kullanan hizmetler ve istemci uygulamaları, yavaş başlatma performansına neden olabilir.

Not

Önceden oluşturulmuş serileştirme kodu hizmetlerde değil yalnızca istemci uygulamalarında kullanılabilir.

ServiceModel Meta Veri Yardımcı Programı Aracı (Svcutil.exe), uygulama için derlenmiş derlemelerden gerekli serileştirme kodunu oluşturarak bu uygulamalar için başlatma performansını geliştirebilir. Svcutil.exe kullanılarak serileştirilebilen derlenmiş uygulama derlemesindeki hizmet sözleşmelerinde kullanılan tüm veri türleri için serileştirme XmlSerializerkodu oluşturur. kullanan XmlSerializer hizmet ve işlem sözleşmeleri ile XmlSerializerFormatAttributeişaretlenir.

XmlSerializer serileştirme kodu oluşturmak için

  1. Hizmetinizi veya istemci kodunuzu bir veya daha fazla derlemede derleyin.

  2. BIR SDK komut istemi açın.

  3. Komut isteminde aşağıdaki biçimi kullanarak Svcutil.exe aracını başlatın.

    svcutil.exe /t:xmlSerializer  <assemblyPath>*  
    

    assemblyPath bağımsız değişkeni, hizmet sözleşmesi türlerini içeren bir derlemenin yolunu belirtir. Svcutil.exe kullanılarak serileştirilebilen derlenmiş uygulama derlemesindeki hizmet sözleşmelerinde kullanılan tüm veri türleri için serileştirme XmlSerializerkodu oluşturur.

    Svcutil.exe yalnızca C# serileştirme kodu oluşturabilir. Her giriş derlemesi için bir kaynak kod dosyası oluşturulur. Oluşturulan kodun dilini değiştirmek için /language anahtarını kullanamazsınız.

    Bağımlı derlemelerin yolunu belirtmek için /reference seçeneğini kullanın.

  4. Aşağıdaki seçeneklerden birini kullanarak oluşturulan serileştirme kodunu uygulamanızın kullanımına açın:

    1. Oluşturulan serileştirme kodunu [özgün derleme] adlı ayrı bir derlemede derleyin. XmlSerializers.dll (örneğin, MyApp.XmlSerializers.dll). Uygulamanızın derlemeyi yükleyebilmesi ve özgün derlemeyle aynı anahtarla imzalanması gerekir. Özgün derlemeyi yeniden derlerseniz, serileştirme derlemesini yeniden oluşturmanız gerekir.

    2. Oluşturulan serileştirme kodunu ayrı bir derlemede derleyin ve XmlSerializerAssemblyAttribute kullanan hizmet sözleşmesinde kullanın XmlSerializerFormatAttribute. AssemblyName veya CodeBase özelliklerini derlenmiş serileştirme derlemesine işaret eden şekilde ayarlayın.

    3. Oluşturulan serileştirme kodunu uygulama derlemenizde derleyin ve kullanan hizmet sözleşmesine XmlSerializerFormatAttributeekleyinXmlSerializerAssemblyAttribute. veya CodeBase özelliklerini ayarlamayınAssemblyName. Varsayılan serileştirme derlemesinin geçerli derleme olduğu varsayılır.

Visual Studio'da XmlSerializer serileştirme kodu oluşturmak için

  1. Visual Studio'da WCF hizmetini ve istemci projelerini oluşturun. Ardından, istemci projesine bir hizmet başvurusu ekleyin.

  2. serviceReference ->reference.svcmap altındaki istemci uygulama projesindeki reference.cs dosyasındaki hizmet sözleşmesine bir XmlSerializerFormatAttribute ekleyin. Bu dosyaları görmek için Çözüm Gezgini'deki tüm dosyaları göstermeniz gerektiğini unutmayın.

  3. İstemci uygulamasını oluşturun.

  4. Komutunu kullanarak önceden oluşturulmuş bir seri hale getirici .cs dosyası oluşturmak için ServiceModel Meta Veri Yardımcı Programı Aracı'nı (Svcutil.exe) kullanın:

    svcutil.exe /t:xmlSerializer  <assemblyPath>*  
    

    assemblyPath bağımsız değişkeni WCF istemci derlemesinin yolunu belirtir.

    Örneğin:

    svcutil.exe /t:xmlSerializer wcfclient.exe  
    

    WCFClient.XmlSerializers.dll.cs dosyası oluşturulur.

  5. Önceden oluşturulmuş serileştirme derlemesini derleyin.

    Önceki adımda yer alan örnekten yola çıkarak derleme komutu aşağıdaki gibi olacaktır:

    csc /r:wcfclient.exe /out:WCFClient.XmlSerializers.dll /t:library WCFClient.XmlSerializers.dll.cs  
    

    Oluşturulan WCFClient.XmlSerializers.dll istemci uygulamasıyla aynı dizinde olduğundan emin olun ve bu örnekte WCFClient.exe .

  6. İstemci uygulamasını her zamanki gibi çalıştırın. Önceden oluşturulmuş serileştirme derlemesi kullanılır.

Örnek

Aşağıdaki komut, tüm hizmet sözleşmelerinin derlemede kullandığı türler için XmlSerializer serileştirme türleri oluşturur.

svcutil /t:xmlserializer myContractLibrary.exe  

Ayrıca bkz.