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 T-Man
Thema: "Alle Verweise suchen" via Reflection
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Keine Ideen mehr?

Gruß
T-Man

Thema: Problem mit xml namespace
Am im Forum: Datentechnologien

Kann mir wirklich keiner weiterhelfen?

Gruß
Tony

Thema: "Alle Verweise suchen" via Reflection
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Moin!

Weder fxcop noch ReSharper können es. Hat jeman noch 'ne Idee?

Dank und Gruß
T-Man

Thema: "Alle Verweise suchen" via Reflection
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Danke!!!

Werde mir zunächst mal fxcop ansehen...

Thema: "Alle Verweise suchen" via Reflection
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Kennst Du da was kostenloses?

Thema: Login System in C# DLL?!
Am im Forum: Web-Technologien

Request und Response könntest Du auch als Parameter übergeben...

Thema: "Alle Verweise suchen" via Reflection
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich habe hier eine riesige, alte Projektmappe, in der tausende Resource Strings angelegt wurden, von denen schätzungsweise 20% nicht mehr benötigt werden. Die möchte ich entfernen.

Thema: "Alle Verweise suchen" via Reflection
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Moin!

Im Visual Studio hat man im Contextmenü zu einem Bezeichner den Menüpunkt "Alle Verweise suchen". Das Ergebnis sind alle Verweise in der Projektmappe.

Kann ich diese Suche auch per Reflection nachbilden?
Oder gibt es eine andere Möglichkeit?

In den Klassen MethodInfo und MethodBody konnte ich (auf den ersten Blick) dazu nichts finden.

Vielen Dank im voraus.
T-Man

Thema: Problem mit xml namespace
Am im Forum: Datentechnologien

Ich habe das Problem jetzt gelöst, indem ich die Attribute in dem Schema direkt in den Typen definiert habe, statt sie vorher zu definieren und dann zu referenzieren.

Hier die neue Version des Schemas:


<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="ResourceFileSchema"
    targetNamespace="http://tempuri.org/ResourceFileSchema.xsd"
    elementFormDefault="qualified"
    xmlns="http://tempuri.org/ResourceFileSchema.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
  <xs:complexType name="defaultResourceStringType" >
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="overrideOnUpdate" type="xs:boolean" fixed="true" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="localizedResourceStringType">
    <xs:simpleContent>
      <xs:extension base="defaultResourceStringType">
        <xs:attribute name="cultureName" use="required">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:pattern value="[a-z]{2,3}(-(((Latn)|(Kyrl)|(Mong)|(Cans))-)?[A-Z]{2,3})?" />
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="resourceStringType">
    <xs:sequence>
      <xs:element name="defaultValue" type="defaultResourceStringType" maxOccurs="1" minOccurs="1" />
      <xs:element name="value" type="localizedResourceStringType" maxOccurs="unbounded" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="id" type="xs:string" use="required" />
  </xs:complexType>

  <xs:complexType name="localizedStringCollectionType">
    <xs:sequence>
      <xs:element name="resourceString" type="resourceStringType" maxOccurs="unbounded" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="localizedStringCollection" type="localizedStringCollectionType" />
</xs:schema>

Dennoch würde ich gerne verstehen, wo das Problem liegt.
Kennt einer ein wirklich gutes, ausführliches Tutorial dazu? Oder kann mir jemand ein Buch empfehlen?

Gruß
Tony

Thema: Image aus File füllen und neu abspeichern
Am im Forum: Grafik und Sound

Hallo Jelly,

der stream darf nicht geschlossen werden, denn dann 'funktioniert' das Image nicht mehr richtig. Bei kleinen Bildern klappt es manchmal. Wahrscheinlich weil es zwischengespeichert ist und kein Zugriff mehr auf den Stream erfolgt...
Bei großen Bildern gibt es aber Probleme, da dort immer wieder auf den Stream zugegriffen wird.

Gruß
T-Man

Thema: Namensgebung im Framework: British English vs. American English ?
Am im Forum: Rund um die Programmierung

Ähm, in c# heißt es doch Color (amerikanisch) und nicht Colour (britisch). Zumindest ist mir noch kein Colour untergekommen. Wo hast Du es denn gefunden?

Grey und Gray: Die Namen der Farben wurden sicher aus anderen Quellen übernomen. Die Namen gibt es in HTML, und ich kenne sie auch von alten Unix-Systemen. Meistens ging da übrigens beides...

Gruß
T-Man

Thema: Problem mit xml namespace
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: XML

Moin!

Ich habe folgendes Schema:


<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="ResourceFileSchema"
    targetNamespace="http://tempuri.org/ResourceFileSchema.xsd"
    elementFormDefault="qualified"
    xmlns="http://tempuri.org/ResourceFileSchema.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
  <xs:attribute name="overrideOnUpdate" type="xs:boolean" fixed="true" />

  <xs:attribute name="cultureName">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:pattern value="[a-z]{2,3}(-(((Latn)|(Kyrl)|(Mong)|(Cans))-)?[A-Z]{2,3})?" />
      </xs:restriction>
    </xs:simpleType>
  </xs:attribute>

  <xs:attribute name="id" type="xs:string" />

  <xs:complexType name="defaultResourceStringType" >
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute ref="overrideOnUpdate" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="localizedResourceStringType">
    <xs:simpleContent>
      <xs:extension base="defaultResourceStringType">
        <xs:attribute ref="cultureName" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="resourceStringType">
    <xs:sequence>
      <xs:element name="defaultValue" type="defaultResourceStringType" maxOccurs="1" minOccurs="1" />
      <xs:element name="value" type="localizedResourceStringType" maxOccurs="unbounded" minOccurs="0" />
    </xs:sequence>
    <xs:attribute ref="id" use="required" />
  </xs:complexType>

  <xs:complexType name="localizedStringCollectionType">
    <xs:sequence>
      <xs:element name="resourceString" type="resourceStringType" maxOccurs="unbounded" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="localizedStringCollection" type="localizedStringCollectionType" />
</xs:schema>

und dazu folgende XML Datei:

<?xml version="1.0" encoding="utf-8"?>
<localizedStringCollection xmlns="http://tempuri.org/ResourceFileSchema.xsd">
  <xs:schema targetNamespace="http://tempuri.org/ResourceFileSchema.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:include schemaLocation="ResourceFileSchema.xsd" />
  </xs:schema>
  
  <resourceString id="German">
    <defaultValue overrideOnUpdate="true">german</defaultValue>
    <value cultureName="de" overrideOnUpdate="true">deutsch</value>
    <value cultureName="it">tedesco</value>
    <value cultureName="sr-Latn-CS">nemacko</value>
  </resourceString>
  <resourceString id="English">
    <defaultValue overrideOnUpdate="true">english</defaultValue>
    <value cultureName="de" overrideOnUpdate="true">englisch</value>
    <value cultureName="it">inglese</value>
    <value cultureName="sr-Latn-CS">englesko</value>
  </resourceString>
</localizedStringCollection>

Ich bekomme folgende Fehler:

The 'id' attribute is not declared.

und

The required attribute 'http://tempuri.org/ResourceFileSchema.xsd:id' is missing.

Diese Fehler bekomme ich für alle Attribute.

Wieso sind die Attribute nicht bekannt, die Tags aber schon?

Mit folgender XML-Datei funktioniert es:

<?xml version="1.0" encoding="utf-8"?>
<localizedStringCollection xmlns="http://tempuri.org/ResourceFileSchema.xsd" xmlns:r="http://tempuri.org/ResourceFileSchema.xsd">
  <xs:schema targetNamespace="http://tempuri.org/ResourceFileSchema.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:include schemaLocation="ResourceFileSchema.xsd" />
  </xs:schema>
  
  <resourceString r:id="German">
    <defaultValue r:overrideOnUpdate="true">german</defaultValue>
    <value r:cultureName="de" r:overrideOnUpdate="true">deutsch</value>
    <value r:cultureName="it">tedesco</value>
    <value r:cultureName="sr-Latn-CS">nemacko</value>
  </resourceString>
  <resourceString r:id="English">
    <defaultValue r:overrideOnUpdate="true">english</defaultValue>
    <value r:cultureName="de" r:overrideOnUpdate="true">englisch</value>
    <value r:cultureName="it">inglese</value>
    <value r:cultureName="sr-Latn-CS">englesko</value>
  </resourceString>
</localizedStringCollection>

Ich verstehe, dass die zweite Version funktioniert (auch wenn sie mir nicht gefällt, denn ich möchte eigentlich auf das r: verzichten), aber ich verstehe absolut nicht, wieso die erste Version nicht funktioniert.

Wenn ich das Schema direkt einbette, statt es über include einzubinden, funktioniert die erste Variante übrigens.

Kann mir das jemand erklären?

Vielen Dank in vorraus!

T-Man

Thema: Was haltet ihr von Windows Vista?
Am im Forum: Smalltalk

Ich nutze (auf der Arbeit) Vista Ultimate schon seit 1,5 Jahren. Man muss sich ja schließlich auskennen, bevor es die Kunden einsetzen...
Anfangs war ich sehr genervt. Mittlerweile sind mir einige stärken aufgefallen. Was mich besonders beeindruckt hat, war ein Problem im Zusammenhang mit der Registry. Ich entwickle gerade eine NamespaceExtension für den Explorer und bei einer Test-Installation auf einem XP-System kam es mal zu einem ernsten Problem. In der Registry gab es ein paar Schlüssel, die plötzlich nicht mehr gelöscht etc. werden konnten. Die Rechte auf diese Schlüssel waren komplett weg. Ich hatte versucht im Abgesicherten Modus mit Eingabeaufforderung sie zu entfernen, zu ändern..., aber es ging nicht. Leider lief deswegen auch der Explorer nicht mehr und ich konnte Windows neu installieren...
Bei Vista hatte ich das selbe dann mal auch provoziert. Die Schlüssel ließen sich zwar auch nicht löschen (selbe Fehlermeldung...) aber sie wurden daraufhin einfach automatisch entfernt und alles war gut.

Die Benutzerkontensteuerung finde ich gut, auch wenn es manchmal ein wenig nervt, wenn man gerade recht viel als Admin zu tun hat und ständig alles Mögliche bestätigen muss...

Auch die Sache mit den Sprachpaketen ist super. Ich kann einfach auf English umstellen und habe ein komplett Englisches System. (Man muss sich zwar neu Anmelden, aber das ist besser als ein kompletter Neustart, den ich vermutet hätte.) Das ging unter XP nicht. Da musste ich mir mehrere XPs installieren...

Ein weiteres für mich wichtiges goody ist die breadcrumpnavigation im Explorer.

Ich hatte allerdings mehr erwartet, bei der langen Entwicklungszeit.

Gruß
T-Man

Thema: Bedingte Assembly-Verweise
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo kleines_eichhoernchen,

Du liegst richtig. Die Verweise sind in der Assembly nicht zu finden, wenn sie nicht benötigt werden. Leider ist mein Setup-Projekt nicht so 'klug'. Dort tauchen die Abhängigkeiten auf und es wird jede Menge Mist, der eigentlich nicht benötigt wird, mit installiert und genau das ist es, was ich vermeiden wollte...

Gruß
T-Man

Thema: Dictionary beim initialisieren Werte übergeben
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zu 1.: Ich würde vorschlage, Du siehst Dir mal die Hilfe zum Dictionary an. Es gibt mehrere Konstruktoren mit verschiedenen Parametern....

Thema: Webservice Page_Load?
Am im Forum: Web-Technologien

Also bei mir wird der Constructor immer aufgerufen...

Thema: Problem bei eigener TextBox mit Rahmen
Am im Forum: GUI: Windows-Forms

Du musst im Setter von BackColor auch base.BackColor setzen...

Thema: Bedingte Assembly-Verweise
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Moin allerseits!

Ich habe in einem Projekt Code, der mit

#if WIZARDS
...
#endif

geklammert ist. In diesem Bereich benutze ich Klassen, für die ich in meinem Projekt Verweise hinzufügen muss (Microsoft.VisualStudio.TemplateWizardInterface und EnvDTE). Die Verweise benötige ich ansonsten nicht.

Gibt es eine Möglichkeit Verweise abhängig von solchen Symbolen zu setzen?

Die Assembly, die rausgeht, wird ohne das Symbol compiliert und da sollten eigentlich auch die unnötigen Verweise entfernt werden. Zur Zeit entferne ich sie immer, wenn ich sie nicht benötige und füge sie wieder ein, wenn sie benötigt werden. Das würde ich gerne automatisieren. Geht das evtl. über Build-Ereignisse?

Vielen Dank in vorraus!
T-Man

Thema: [erledigt] %I und %L in registry im command
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo herbivore,

vielen Dank! Das hilft mir weiter.

Gruß
T-Man

Thema: [gelöst] Mit FileSystemWatcher-Event ein Formular schliessen
Am im Forum: GUI: Windows-Forms

Dein Formular hat die Methode Invoke. Sieh Dir dazu mal die Hilfe an...

Thema: [erledigt] %I und %L in registry im command
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Moin allerseits!

In der Registry findet man unter ...\shell\[verb]\command sowas wie notepad.exe %1 etc.

[verb] steht für open, edit, read, print, openasreadonly, play, etc.

Manchmal steht da auch ein %L. Das steht wohl für den langen Namen und ist somit im Grunde gleichbedeutend mit "%1".
Ich habe aber auch %I (I wie Idar) gesehen.
Weiß jeman wodurch das ersetzt werden soll?
Ich habe jetzt 2 Stunden lang gegoogelt und nichts dazu finden können...

Gruß
T-Man

Thema: Beschreibung einer WebMethode auslesen
Am im Forum: Netzwerktechnologien

Danke für die Info. Das hatte ich schon befürchtet
Dann werde ich wohl die wsdl Datei auslesen müssen...

T-Man

Thema: Beschreibung einer WebMethode auslesen
Am im Forum: Netzwerktechnologien

Ich habe einen WebService mit einigen WebMethoden. Diesen habe ich eine Description mitgegeben.

Beispiel:

[WebMethod(Description="Blabla")]
public string HelloWorld()
{
return "Hello World";
}

In meinem Client habe ich eine WebReference erzeugt (mit Visual Studio...)
Dort kann ich nun diese Methode aufrufen. Ich möchte aber auch an die Description ("Blabla") ran kommen.
Weiß jeman, wie ich die aus dem Code raus abfragen kann?

Vielen Dank schonmal in vorraus.

T-Man

Thema: Zugriff auf LDAP-Server
Am im Forum: Netzwerktechnologien

Du musst doch einen LDAP Administrator account haben, oder? Den musst Du verwenden.

Thema: Regex auf riesige Texte
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich habe vor sowohl einen Index aufzubauen, als auch eine völlig freie Regex Suche anzubieten. Wenn jemand riesige Texte mit Regex durchsuchen möchte, dann muss er damit leben, dass das länger dauern kann. Sucht er bloß einzelne Worte, geht es fixer...

Ich hätte vielleicht auch mal rechnen sollen...
Wer tatsächlich vor hat riesige Texte zu Speichern und diese auch per Regex durchsuchen zu lassen, der muss sich auch die 3GB Arbeitsspeicher gönnen und davon soviel wie möglich meiner Applikation gönnen...
Die Wahrscheinlichkeit, dass mehrere Anwender eine Suche starten, bei der gleichzeitig mehrere riesige Texte geladen werden müssen und es dabei zu einer OutOfMemoryException kommt ist sehr gering. Und dann kann man es ja einfach nochmal versuchen...

Vielen Dank nochmal für die Anregungen
T-Man

Thema: Regex auf riesige Texte
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Vielleicht sollte ich mir tatsächlich den .net Code vornehmen und ihn so erweitern, dass Regex auch mit Streams umgehen kann. Dann könnte ich den Code an Microsoft schicken und hoffen, dass die den im nächsten Framework einbauen.



Ich denke, ich werde wohl dokumentieren, dass Regex nicht auf beliebig grosse Texte anwendbar ist und evtl. die Möglichkeit anbieten eine Regex auf die Ersten x bzw. die letzten x Zeichen vorzunehmen... das muss dan reichen.

Thema: Regex auf riesige Texte
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von webstarg
Vielleicht könntest du die genannte Möglichkeit so anwenden (ist jedoch immer noch nicht ein vollwertiger Ersatz):
- Zeichen 0 bis 200.000 (das dürfte Regex schaffen)
- Zeichen 100.000 - 300.000 (überlappten Teil etwas übertrieben...)
- Zeichen 200.000 - 400.000
- ...

mfg
webstarg

Edit: Länger als 100.000-Zeichen wird ein Suchtreffer in der Regel nicht sein. ;-) Hoffentlich.
Hm, da fällt mir folgendes Pattern ein:

.*+Anhang

Also alles vom Anfang, bis zum letzten Auftreten des Wortes Anhang. Das kann sehr viel werden.
Ein beliebiger Regulärer Ausdruck kann auch beliebig lange Treffer haben...
Und ich möchte nichts einschränken.

Thema: Regex auf riesige Texte
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich kann das Pattern leider nicht einfach dort zerlegen, wo Quantoren vorkommern, da es nämlich Klammern gibt, die beachtet werden müssen. Außerdem müsste ich wohl auch zwischen greedy und lazy unterscheiden. Dann gibt es noch das Oder...
Und vielleicht gibt es (z.B. in Zusammenhang mit Lookaround) noch weitere Probleme, die mir gerade nicht einfallen, die zu beachten wären. Ich müsste also zunächst alle Möglichkeiten von Regex durchgehen und käme am Ende wahrscheinlich zu einer sehr komplexen Logik, die der des Parses nahe kommt...

Thema: Regex auf riesige Texte
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich sehe nicht, wie das für beliebige Regex funktionieren soll. Ich müsste die Regex erstmal selber zerlegen etc.
Das scheint mir sehr viel Aufwand zu sein. Beinahe soviel Aufwand, wie selber einen Parser zu schreiben.

Vielleicht habe ich aber auch Dein Beispiel noch nicht richtig verstanden.
Hast Du mal ein konkretes simples Beispiel?

Thema: Regex auf riesige Texte
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich denke nicht, dass der Parser unbedingt den ganzen Text auf einmal im Speicher benötigt. Der Parser geht den Text ja zeichenweise durch. Er könnte also jedes Zeichen einzeln aus dem Stream abrufen. Und im Stream kann man hin und her "spulen", ohne den kompletten Stream im Speicher haben zu müssen.