Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Seikilos
Thema: [gelöst] File.Write -> Der Prozess kann nicht auf die Datei xy zugreifen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Edit: Gelöst

Es war noch n Fragment im Code drin, der unnützerweise n XMLTextWriter erstellt hat, der genauso heißt

Thema: [gelöst] File.Write -> Der Prozess kann nicht auf die Datei xy zugreifen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Folgender code:


string test = "hallo";
string file = "D:\\output_status.txt";
File.WriteAllText(file,test);


Exception :


Der Prozess kann nicht auf die Datei D:\output_status.txt zugreifen, da sie von einem anderen Prozess verwendet wird.

Stack:
 bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   bei System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
   bei System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
   bei System.IO.StreamWriter.CreateFile(String path, Boolean append)
   bei System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize)
   bei System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding)
   bei System.IO.File.WriteAllText(String path, String contents, Encoding encoding)
   bei System.IO.File.WriteAllText(String path, String contents)
   bei eFMiddleware.MiddlewareController.writeStatusToFile(String& result, String fileName) in ...Program.cs:Zeile 572.

Die Datei wird hier erst erstellt, niemand greift auf diese Datei zu und ich kann diese Datei problelos löschen.

WriteAllText schließt doch die Datei direkt, warum macht er da solche Probleme?

Thema: VC#, wie Textdatei in Exe einbinden?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Aaa, danke dir.

Ich hab das irgendwie mit C++ verwechselt, klar Ressourcen

Danke nochmal

Thema: VC#, wie Textdatei in Exe einbinden?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich hab ne große Textdatei, die unbedingt in die exe rein muss. Ich will diese also nicht extern verlinken, sondern würde diese gerne, so wie sie ist in die exe integrieren und lesen können.
Datei als String zu speichern ist keine Option (ne Menge escape Zeug usw)

Es ist also nicht direkt etwas, was man gut als eine Zeile irgendwo abspeichert.

Thema: DataAdapter -> xml parsen?
Am im Forum: Datentechnologien

Hallo,

ich habe noch eine Frage zu XSLT, ich weiß nun, wo die Probleme mit ner Linearisierung einer Baumstruktur liegen

Meine Frage, ich definiere ja quasi n Schema, anhand welcher XSLT die Daten serialisiert, soweit ok. Ich kann dann meine Elemente nach dem Schema


ElementA|ElementB|ElementC

serialisieren, damit habe ich eine nette csv Datei.

Was ich aber noch nicht begriffen habe, kann ich in dem Schema Metainformationen definieren?
Das Schema da oben füllt mir meine 3 XML Elemente brav in eine Reihe, aber kann ich zusätzlich am Anfang der Zeile noch definieren, dass er die Anzahl der Elemente zählen soll?

Thema: Generischer Namespace als Returntyp?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich beschreibe mal mein Problem genauer:

Ich bekomme eine XSD geliefert, die beispielsweise diese XMLs generiert:


<root>
 <header>...</header>
 <elementA />
</root>
// oder
<root>
 <header>...</header>
 <elementB />
</root>
....
Dh also einige Teile der XML wiederholen sich immer, wie der header, andere Elemente sind optional, also header und elementA oder header und elementB usw.

Mein Vorhaben funktionierte so:
Mittels XSD generiere ich Klassen aus der XSD, diese haben den Namespace "aa". Arbeite mit den Klassen ganz normal und serialisiere diese Klassen dann wieder.

Dabei benutze ich Methoden zur Generierung der Elemente, Beispiel:


public aa.RootType createRoot(){createHeader(); createElementA();...}
public aa.HeaderType createHeader();
public aa.ElementAType createElementA();

Man beachte den Namespace. Ich habe dann ein RootType, welches ich mittels dem XML Serializer in eine saubere XML umwandeln kann. Dies funktioniert einwandfrei.

Nun ist der Fall eingetreten, dass ich weitere XSD bekomme, Beispielsweise:

<root>
 <header>...</header>
 <ganzNeuesElementA/>
</root>

D.h. eine XSD bei der völlig neue Elemente hinzu kommen, teilweise sehr viele in vielen verschiedenen Abstufungen.
Das Problem nun, ich bekomme daraus mit xsd.exe wieder Klassen, mit dem Namespace bb.

Das Problem: Einige Elemente wie createHeader sind absolut gleich, außer dass der Namespace von aa auf bb gewechselt werden muss, diese Redundanz möchte ich dringend vermeiden.

Wie kann ich dieses Problem angehen? Es gibt in beiden Fällen ein RootType, der gleich aufgebaut ist und es gibt ein HeaderType. Diese dürfen aber nicht vom unterschiedlichen Namespace sein, da der Serializer dies nicht mitmacht.
Von aa.RootType nac bb.RootType kann C# offensichtlich nicht casten (habs probiert)

Eine Lösung wäre: Die Redundanz zu erzeugen, wobei ich wirklich äußert viele Kopien dieser Methoden hätte.

Eine andere Lösung ist nicht praktikabel: Beide XSD Dateien zu mergen. Es sind immer Änderungen, die 500-1000 Zeilen umfassen (nicht meine Idee), dies auch noch an verschiedenen Stellen.

Ihr seht nun mein Dilemma. Ich finde keinen klugen Weg aus dieser Sache.

Thema: Generischer Namespace als Returntyp?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Wird schwierig bei 180 Klassen, da n Interface reinzuknallen

gibt es eigentlich einen brutalen Weg, etwas zu casten?

Thema: Typ als Parameter übergeben?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Die Klasse ist jedoch nicht generisch, die Methode schon.

Wie kann ich denn dann Ts Methoden nutzen, die als Generic noch nicht bekannt sind?

Thema: Typ als Parameter übergeben?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Jau, in dem gleichen Zuge habe ich ein Problem mit generics.
Ich kann ja schlecht in einer Klasse so etwas schreiben:


public void foo<T>()
{
  T t = new T();
}

Thema: Lokale Namespaces möglich?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi,
kann ich ein Alias global deklarieren und im Code ändern? also zweimal using auf selbes Alias wechselt den NS ?

Thema: Generischer Namespace als Returntyp?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Merkwürdige Frage, allerdings habe ich eine Methode, deren Signatur so aussieht:


public meinNs.MeinTyp foo();

Der Haken ist, es gibt sehr viele Namespaces, aber immer den Rückgabetyp MeinFoo.

Dh ich hätte eine Menge Methoden ala:


public meinNs.MeinTyp foo();
public meinNs2.MeinTyp foo();
public meinNs3.MeinTyp foo();

Methoden Körper wäre gleich, mein Ziel wäre, den Namespace als Template Parameter an die Funktion (nicht Klasse!) zu übergeben.

Ich glaube, es würde gehen, wenn die Methoden komplett generisch wären:


public T foo<T>();

Aber das würde ich sehr gerne vermeiden, da nun nicht mal ansatzweise klar ist, was der Rückgabetyp ist und man so vollkommen vom Aufrufenden abhängig ist

Thema: Typ als Parameter übergeben?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ist es möglich einen Typen als Parameter zu übergeben?

Ich muss generisch in einer Methode typeof(xy) nutzen, nun kann sich dieser Typ allerdings ändern und ich würde gerne dies parametrisieren.

Thema: Lokale Namespaces möglich?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich bekomme Klassen, gekapselt in Namespaces, deren Inhalt sich teilweise ständig verändert.
Mehrere dieser Klassen müssen im Code genutzt werden, nun haben die Namespaces zum teil eine gemeinsame Schnittmenge an Klassen.

Ich kann nun nicht einfach using a; using b; schreiben, weil der Compiler dann nicht mehr unterscheiden kann, aus welchem NS die jeweilige Klasse kommen soll.
Daher meine Frage, kann ich Methodenweit definieren, welches Namespace lokal genutzt werden soll?

Ich meine eine Alternative zu a.Foo und b.Foo

Thema: Kommandozeilenparameter: Gibt es Längengrenzen für Strings?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Gut, dann bin ich drauf vorbereitet, danke herbivore.

Und danke für den Tipp mit der Datei 0815Coder

Thema: Kommandozeilenparameter: Gibt es Längengrenzen für Strings?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Access muss mit meiner Middleware kommunizieren, diese muss mit Daten gefüttert werden.

Der Access Dev kann mir keine Schnittstelle via Console bieten, weil er diese nicht abfangen kann, ergo muss ich entweder Dateien einlesen, was mehr Arbeit für mich ist, oder alles über Tausend Kommandoparameter lösen.

Es wird also niemand per Hand die Middleware aufrufen, daher ist die Menge an Parametern nicht so schön, aber eher unkritisch

Thema: Kommandozeilenparameter: Gibt es Längengrenzen für Strings?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Danke für die Info, das hilft mir. Ich hätte vermutet, das Windows da irgendwelche Restriktionen auferlegt.

Thema: Kommandozeilenparameter: Gibt es Längengrenzen für Strings?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Kann ich beliebig viele und beliebig lange Zeichenketten als Parameter beim Aufruf einer C# /.net exe anhängen? Oder gibt es Restriktionen von einer Seite?

Thema: DataAdapter -> xml parsen?
Am im Forum: Datentechnologien

Werde ich testen, danke.
Auf jeden Fall hab ich keine zirkulären Abhängigkeiten.
Aber ist nicht alles XML in jedes beliebige Format überführbar? Ich mein XML ist doch auch linear

Thema: DataAdapter -> xml parsen?
Am im Forum: Datentechnologien

gibt es eigentlich einen String Serializer für generierte Klassen? XML macht der XmlSerializer, das ist super, aber gibts auch einen Serializer, der es in eine CSV datei schreiben könnte?

Thema: DataAdapter -> xml parsen?
Am im Forum: Datentechnologien

Ha, hab das vorhin auch entdeckt, aber danke für die Bestätigung, ersparrt mir ne Menge idiotischer Tipparbeit



Edit: wieso vor DeSer validieren? Das XML kommt ja nicht von mir

Thema: DataAdapter -> xml parsen?
Am im Forum: Datentechnologien

Ich habe eine XSD, diese konnte ich mittels xsd.exe in eine cs Klasse mit allen relevanten Elementen unwandeln, nun fehlt mir aber noch eine Möglichkeit, eine XML in diese Klassen zu parsen.

Es gibt ja wege mit einem SQLDataAdapter und der Fill Methode solche Klassen aus SQL zu generieren (siehe hier ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/wd_adonet/html/54333cbf-bb43-4314-a7d4-6dc1dd1c44b3.htm)

Aber wie krieg ich das gleiche mit einer XML Datei die ich in einer Klasse representieren muss=

Thema: VC# Unit Test -> Exceptions testen?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

aaah, großartig, danke!

Thema: VC# Unit Test -> Exceptions testen?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich hab ein Problem und zwar mach ich ein Unit test, bei dem das Ergebnis eine Exception sein soll, aber wie genau kann ich dies mit der Assert Klasse abfragen, so das der Test als bestanden gilt?

Thema: static string Main() möglich?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von herbivore
Was du tatsächlich machen kann, hängt doch von den Fähigkeiten des Aufrufers ab und nicht so sehr davon, was man in C# machen kann.

Ich weiß, aber über diese Seite habe ich die Macht , daher versuch ich es hier zu biegen, wie es geht.

Aber gut, alles weitere muss ich mit der anderen Seite klären.

Danke Leute

Thema: static string Main() möglich?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich betreue Access ja nicht und ich bezweifele ob die andere Seite die Ressourcen dafür hat, sich in solche Dinge einzuarbeiten

Thema: static string Main() möglich?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

War Plan B

Thema: static string Main() möglich?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich hab ein Szenario in dem C# als Middleware fungiert und von einem Programm aufgerufen wird.

Nun ist der Fall so, dass der Aufrufer wohl so simpel ist, dass er keine IO Streams abgreifen kann, jedoch eine Menge an String-Daten von der Middleware bekommen muss.

Wie löst man dies am Besten? ne String Main wäre ne Idee, ist aber nicht erlaubt als Entry Point :/, wobei das ne witzige Methode wäre, Daten zurückzugeben.

(Achja, die Anwendung, die es Aufruft wird Access sein)

Thema: XMLDocument.Validate reagiert nicht (edit: mit Copy&Paste Democode)
Am im Forum: Datentechnologien

Versuche ne XML gegen ein XSD zu validieren, der Validator rührt sich allerdings nicht, obwohl ich falsche Elemente baue:

... {
XmlDocument doc = new XmlDocument();
            doc.Schemas.Add(null, xsdFile);
           
            ValidationEventHandler v = new ValidationEventHandler(ValidationEventHandler);

            doc.AppendChild(doc.CreateElement("hokljk2"));
            // nix
            doc.Validate(null);
            // nix
            doc.Validate(v); 
            doc.Save(Console.Out);
}


 static void ValidationEventHandler(object sender, ValidationEventArgs e)
{
            throw new ArgumentException("Validierungs Fehler: " + e.Message);

}

Die XSD scheint in doc.Schemas drin zu sein, aber er wirft mir bei leibe keine Exception. Und das Element ist definitiv nicht in der XSD


Edit: Hier ein Copy Paste Code, der nicht funzen dürfte:


using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Text;
using System.Reflection;
using System.Xml.Schema;
using System.Xml;


  static void Main(string[] args)
        {
            
                
                ValidationEventHandler v = new ValidationEventHandler(ValidationEventHandler);
                StringReader sr = new StringReader("<xsd:schema xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" targetNamespace=\"xy\"   xmlns=\"xy\"><xsd:element name=\"cat\" /></xsd:schema>");
                XmlSchema s = XmlSchema.Read(sr,v);
               
                XmlDocument doc = new XmlDocument();
                string xml = "<cats />";
                doc.Load(new StringReader(xml));
                doc.Schemas.Add(s);;
                doc.Schemas.Compile();
                doc.Validate(null);
                
                doc.Validate(v);

// Keine Exception...

return;

 }
 static void ValidationEventHandler(object sender, ValidationEventArgs e)
        {
            throw new ArgumentException("Validierungs Fehler: " + e.Message);

        }

Thema: XML Element mit namespace erstellen?
Am im Forum: Datentechnologien

Ich kappiere eine Sache nicht, die mir nicht durch das manual ersichtlich geworden ist:

 XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "</book>");

    //Create an attribute.
    XmlAttribute attr = doc.CreateAttribute("publisher");
    attr.Value = "WorldWide Publishing";

    //Add the new node to the document. 
    doc.DocumentElement.SetAttributeNode(attr);

Wenn ich doc.CreateAttribute schreibe, so bekomme ich ein XmlAttribute undmuss es dennoch noch irgendwo in doc plazieren. Wieso? Wäe CreateAttrubute nicht besser als static? Oder was verstehe ich da nicht?

Thema: XML Element mit namespace erstellen?
Am im Forum: Datentechnologien

XML DOM ist XMLDocument?

In der Help steht unter XML Dom viel, und viele Klassen werden aufgeführt, wie XMLNode, XMLElement usw, aber gibt es da eine Manager Klasse für? Sonst ist ja die Verwaltung dieser Klassen nicht so geschickt