[C#] verschiedene XML Formate beliebig verwenden

Hi.

Und MCoder meinte
C#:
XmlAttribute attr = (XmlAttribute)xmlnode.Attributes.GetNamedItem("name");
(das Attribut heißt "name" und nicht "connection.provider")

Außerdem willst du doch sicherlich den Wert des <property /> Elementes ändern, also statt "NHibernate.Connection.DriverConnectionProvider" irgendwas anderes speichern, oder?!

Dann mußt du nur die InnerText Eigenschaft setzen.

Gruß
 
@deepthroat
Danke für's Korrekturlesen. Beim vorletzter Beitrag war ziemlich daneben :-(

Gruß
MCoder
 
super danke... ich habe mich auch lange rumgeplagt mit dem ganze und habe es dann ähnlich gelöst =)

so sieht mein code jetzt aus =)

Code:
XElement sessionFactory = HibernateDoc.Root.Elements().Where(e => e.Attribute("name").Value == "PtsESystem").FirstOrDefault();
            XElement property = sessionFactory.Elements().Where(e => e.Attribute("name").Value == "connection.connection_string").FirstOrDefault();

            return property.Value;

irgendwie einfach hehe =)

jetzt habe ich noch eine aller letzte frage....

mein Connectionstring sieht so aus

UserName=Bla;Server=Bla;Passwort=Bla

ich habs geschafft ein Array zu erstellen das so aussieht:

UserName=Bla
Server=Bla
Passwort=Bla

jetzt brauch ich aber nur die Blas und muss das nochmal nach dem "=" spliten und in ein weiteres array schreiben... mir will einfach nicht mehr einfallen wie das geht (fall ich das schon mal gemacht habe)
 
Ich würd's zeichenweise in einem Rutsch in einer Schleife abarbeiten:
C#:
string strConn = "UserName=name;Server=server;Passwort=passwd";

List<string> listConn = new List<string>();
string str = String.Empty;
bool bData = false;

foreach( char c in strConn )
{
    switch( c )
    {
        case '=': bData = true;
                  break;
        case ';': bData = false;
                  listConn.Add(str);
                  str = String.Empty;
                  break;
        default:  if( bData ) { str += c; }
                   break;
    }                    
}

if( bData ) { listConn.Add(str); }
Gruß
MCoder
 
jap so ähnlich hab ichs auch gemacht hehe =)......

und wenn man mir jetzt noch die wirklich letzte frage beantworten kann, dann kann das thema als erledigt angekreizt werden....

wie komm ich an den port "87377"?

HTML:
<configuration>
  <system.runtime.remoting>
    <application>
      <lifetime leaseManagerPollTime="1M" />
      <channels>
        <channel type="Belikov.GenuineChannels.GenuineTcp.GenuineTcpChannel, GenuineChannels" MaxTimeSpanToReconnect="180000" PersistentConnectionSendPingAfterInactivity="1000" ClosePersistentConnectionAfterInactivity="180000" MaxQueuedItems="1000" MaxTotalSize="20000000" port="8737" />
        <channel ref="tcp" port="0">

die einzelnen elemente sind am ende natürlich auch wieder geschlossen.... ist hier aber nicht relevant

ich bin mit XDokument soweit gekommen:

Code:
            XElement lifetime = XConfigDoc.Root.Element("system.runtime.remoting").Element("application").Elements().Where(e=>e.Attribute("leaseManagerPollTime").Value == "1M").FirstOrDefault();
            XElement channels = lifetime;
 
Vielleicht so:
C#:
XElement lifetime = XConfigDoc.Root.Element("system.runtime.remoting").
                    Element("application").
                    Element("channels").
                    Elements().Where(e=>e.Attribute("ref").Value=="tcp").FirstOrDefault();
Gruß
MCoder
 
Zurück