1

1) Wenn (innen web.config Datei) Ich benutzerdefinierten Abschnitt songPoem vor <configSection> Namen erklären, wird ein Fehler gemeldet songPoem Element sagen, wird nicht erkannt. Somit ergibt sich folgendes mir ein Fehler:Ist .Net web.config von oben nach unten gelesen?

<songPoem song=”lalala” /> 

<configSection> 
    <section name=”songPoem” type=”A” /> 
</configSection> 

während die folgenden funktioniert gut:

<configSection> 
    <section name=”songPoem” type=”A” /> 
</configSection> 

<songPoem song=”lalala” /> 

A) Ich gehe davon aus Fehler aufgrund von Net ist web.config von oben nach unten zu lesen ?! Wenn ja, ist die Reihenfolge der Elementdeklaration nur dann ein Problem, wenn es sich um benutzerdefinierte Abschnittselemente handelt, oder ...?

BTW - hier ist die Definition für die Klasse A:

public class A: ConfigurationSection 
{ 
    [ConfigurationProperty(“song”)] 
    public string Song{ ... } 
} 

2) Ich würde davon ausgehen, dass nur Song Attribut würde innerhalb <songPoem> Element erlaubt werden, und so würde ich erwarten, dass .Net der Lage wäre, Beachten Sie, wenn das benutzerdefinierte Abschnittselement nicht vorhandene Attribute enthält. Aber aus irgendeinem Grund konnte ich auch andere Attribute schließen, auch wenn sie auf eine Eigenschaft der Klasse Karte nicht A:

<songPoem song=”lalala” movie=”this_should_be_here” /> 

Jede Idee, warum Net nicht bemerkt, dass songPoem enthält ein ungültiges Attribut?

Antwort

0

gut, es verwendet ein xmlreader die Daten zu lesen, so dass ich mich vorstellen, es liest von oben nach unten, und verarbeitet die Elemente es in Ordnung findet.

Obwohl ich es vermuten würde einen Doppelpass zu tun, Fragen wie diese zu unterstützen. Ich schätze, das tut es nicht.

Auch ich habe immer eine gängige Praxis zu erklären Config Abschnitte an der Spitze gesehen, vielleicht aus diesem Grunde.

Auch die technische Reihenfolge ist wichtig, denn genau wie bei der Deserialisierung würde ich erwarten, dass die Objekte in einer Liste in der gleichen Reihenfolge deserialisiert werden, wie sie definiert wurden.

+0

Dies ist insgesamt BS – Janie

+0

warum würden Sie das sagen? –

2

Ich habe vor einiger Zeit einen ziemlich umfangreichen Blogpost über benutzerdefinierte Konfigurationsabschnitte geschrieben, um meine eigene Verwirrung über sie zu klären. Das sollte Ihnen einige Hinweise geben, damit Sie es aussortiert:

http://www.endswithsaurus.com/2008/11/custom-configuration-section.html

+0

Ich habe Ihren Link überprüft, konnte aber nichts finden, was erklären würde, mit welchen Elementen die Reihenfolge der Deklaration wichtig ist. Ich konnte auch keine Erklärung dafür finden, warum Net nicht vorhandene Attribute nicht bemerkt – SourceC

1

Ich habe immer mein Setup web.config wie folgt:

<configuration> 
    <configSections> 
     <sectionGroup name="myConfigGroup"> 
      .... 
     </sectionGroup> 
    </configSections> 
    <myConfigGroup> 
     .... 
    </myConfigGroup> 
</configuration> 

nie Probleme hatte. Es machte mich wirklich verrückt, als ich den gleichen Fehler machte wie du und nicht verstehen konnte, was das Problem war.

Verwandte Themen