2009-04-13 17 views
35

Visual Studio'da .NET yapılandırma dosyalarını (app.config, web.config, vb.) Düzenlerken, Visual Studio'nun uygulamanızın ayarlarını seçerken bana rehberlik etmesi için akıllıca çalışıyorum. Özel bir yapılandırma bölümü eklerseniz, özel ayarlarım için nasıl akıllı hale getirebilirim? Eminim bunun kolay bir cevabı olmalı, ancak çılgın bir Google araması bana herhangi bir yardım vermedi..config Dosyalarındaki Özel Bölümler için IntelliSense İşlevi

Teşekkürler!

cevap

28

, sen Özellikleri yılında şemaları, projenize .xsd dosya eklemek için .config dosyayı açın ve seçebilir pencere ([…] simgesini tıklayın): diğer cevaplar şöyle

Screenshot of Visual Studio showing where to find and change the "Schemas" property of your <code>.config</code> file

+5

+ 1 Kabul edilen çözüm yaygın olarak uygulanıyor, ancak şema değişiklikleri bilgisayarınızda oluşturulabilecek tüm Visual Studio projelerinde standart ve kullanışlı olmadıkça bunu yapmamalısınız. (Http://msdn.microsoft.com/ tr-us/library/ms255821.aspx) – Paul

10

Özel ayarlarınız için bir XSD dosyası oluşturmanız ve bunu Visual Studio yüklemenizin şema dizinine kopyalamanız gerekir. 2005 için, bu şudur:% ProgramFiles% \ Microsoft Visual Studio 8 \ XML \ Schemas

İşte bu konuda bazı bilgiler. Eğer Visual Studio dosyaları değiştirmek istediğiniz veya Visual Studio klasöre şey kopyalamazsanız http://blogs.msdn.com/astebner/archive/2005/12/07/501466.aspx

+0

Mükemmel. Teşekkürler! –

31

size özel yapılandırma bölümü için bir XML şema belgesi sağlamanız gerekir, derler. Bazı genel dizine .xsd şema dosyasını eklemenize gerek yoktur; Eğer App.config dosyaya özel bölümden doğrudan başvurabilirsiniz:

<configuration> 

    <!-- make the custom section known to .NET's configuration manager --> 
    <configSections> 
    <section name="customSection" type="..." /> 
    </configSections> 

    <!-- your custom section --> 
    <customSection xmlns="http://tempuri.org/customSection.xsd" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xsi:noNamespaceSchemaLocation="customSection.xsd"> 
    ... 
    </customSection> 

<configuration> 

xmlns özellik size customSection elemanı ve tümünde ayarlayın gerekmez, böylece varsayılan bir ad alanı ayarlamak için sadece orada onun çocuk elemanları. (Bununla birlikte, <configuration> elemana xmlns niteliğini koymayın!) customSection.xsd örneğin IntelliSense tarafından kullanılacak şema içeren

:

<xs:schema id="customSectionSchema" 
      targetNamespace="http://tempuri.org/customSection.xsd" 
      elementFormDefault="qualified" 
      xmlns="http://tempuri.org/customSection.xsd" 
      xmlns:mstns="http://tempuri.org/customSection.xsd" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="customSection"> 
    ... 
    </xs:element> 
</xs:schema> 
+0

Hangi tür Ben section.type koymak gerekir? Tahmin ettim ve "xmlns" 'i buraya koydum ve işe yarıyor ... ama eminim ki bu yanlış. –

+1

@Prisoner, (en azından montaj nitelikli) .NET türünde bir ad koymanız gerekiyor. Çerçeve, bu türü başlatacak ve özel yapılandırma bölümünü ayrıştırmak istediğinde kullanacaktır. Önceden tanımlanmış birkaç bölüm işleyici sınıfından herhangi birini veya 'IConfigurationSectionHandler' arabirimini uygulayan herhangi bir özel sınıfı seçin. Daha fazla bilgi için, "App.config özel bölüm işleyicileri" gibi bir şey için google'a bakın veya [bu Kod Proje makalesi] gibi bir makaleyi okuyun (http://www.codeproject.com/KB/aspnet/ConfigSections .aspx) başlamak için. – stakx

+0

Bunun biraz geciktiğini biliyorum, ancak Configuration Manager özel yapılandırma bölümünü okumayı denediğinde ve xmlns: xsi' özniteliğini tanıyamadığında bu durum çalışma zamanı sorununa neden oluyor gibi görünüyor. Düzeltmek için ne yapabilirim biliyor musun? Teşekkürler –

İlgili konular