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 Grumbler85
Thema: [erledigt] Menge von Ersetzungsregeln so sortieren, dass schon Ersetztes nicht nochmal ersetzt wird
Am im Forum: Rund um die Programmierung

Durch die Queue wird aber deine Überprüfungslogik, ob du es machen darfst überflüssig ...
Solange es drin ist, darfst du es einfach übersetzen.

Thema: [erledigt] Menge von Ersetzungsregeln so sortieren, dass schon Ersetztes nicht nochmal ersetzt wird
Am im Forum: Rund um die Programmierung

Ähm - doch doch machen sollst du sie schon, aber du nimmst sie aus einer Liste heraus, übersetzt sie und legst sie danach in der "schon abgearbeitet" Liste ab, etwa:


public List<WhateverObject> TranslateAll() {
  Queue<WhateverObject> originals;
  List<WhateverObject> results;

  //Originials füllen

  while(originals.Size > 0)
  {
    var current = originals.Pop();
    TranslateObject(current);
    results.Add(current);
  }

  return results;
}

Thema: [erledigt] Externe Anwendung starten via URL "Start / Ausführen"...
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich vermute, du kannst das erreichen indem du die ProcessStartInfo mit einer solchen URL fütterst und ShellExecute auf true stellst.

Thema: [erledigt] Menge von Ersetzungsregeln so sortieren, dass schon Ersetztes nicht nochmal ersetzt wird
Am im Forum: Rund um die Programmierung

Wenn ich das richtig verstehe willst du keine Doppelübersetzung.

5 -> 55: Okay
22 -> 5: Okay

22 -> 5 -> 55: BadCase

Abgessehen von der Topologischen Sortierung kannst du auch einfach zwei Listen machen:

Liste1: Nicht übersetzte Objekte (Queue erscheint geeignet, weil es Pop() gibt)
Liste2: Übersetze Objekte

Damit vermeidest du die doppelte Übersetzung.

Thema: Aktualisierung von Form1 scheitert [==> weil eine neue Instanz von Form1 aktualisiert wird]
Am im Forum: GUI: Windows-Forms

Wenn ich nur mal rate, würde ich sagen, du machst das was wir da sehen in AddUser (das bringt so nix, denn du machst es auf eine NEUEN Form1, die du niemals anzeigst)

Richtig wäre also in Form1 sowas wie:


//..
Form AddUser = new AddUser();
AddUser.FormClosed += AddUserFormClosed;
AddUser.Show();
//..

und AddUserFormClosed (ebenfalls in Form1) etwa so:


private void AddUserFormClosed(object sender, FormClosedEventArgs args) {
  FillTree();
}

Thema: Aktualisierung von Form1 scheitert [==> weil eine neue Instanz von Form1 aktualisiert wird]
Am im Forum: GUI: Windows-Forms

Wenn du uns zeigst, wie du das Form_Closed Event abbonierst, können wir dir bestimmt weiterhelfen.

Thema: [erledigt] Menge von Ersetzungsregeln so sortieren, dass schon Ersetztes nicht nochmal ersetzt wird
Am im Forum: Rund um die Programmierung

Du musst eine Topologie (für eine topologische Sortierung) aufbauen.
Im Endeffekt musst du also die Übersetzungen als Pfade und die Werte als Knoten in einem Graph verstehen. Da dein Pfad (bzw. Graph) gerichtet ist, kannst du ein Ende und einen Anfang ausmachen.
Wenn du nun von Ende bis Anfang sortierst, dann hast du dein Ergebnis.

Dazu auch in der Wikipedia: Tolopogische Sortierung (EN)

Thema: Möglichkeiten gesucht eine Excel-Datei zu bearbeiten
Am im Forum: Web-Technologien

Sharepoint kann sowas.
WebDAV nur beschränkt, denn WebDAV macht im Prinzip nen Download und nen Lock (bzw. Excel macht das so)

Thema: Callback bei MemoryCache-Miss
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ah - das ist auch ne gute Idee - ich habe eben versucht das ganze über ein CacheMiss Event zu regeln. Damit laufe ich aber gefahr, dass mehrere Instanzen die den Cache nutzen das Objekt versuchen zu setzen.

Vielen Dank

Thema: Callback bei MemoryCache-Miss
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Vielleicht versteh ich was nicht, aber wenn ich ein Element hinzufügen will - dann habe ich es offensichtlich schon - warum sollte ich dann ein vorhandenes aus dem Cache nehmen?

Aber das hängt wohl indirekt mit dem Callback zusammen, den ich noch nicht gefunden habe ...

Thema: Callback bei MemoryCache-Miss
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo allerseits,

ich versuche grade ein paar Daten in einem System.Runtime.Caching.MemoryCache abzulegen.
Dabei bin ich über folgende Fragestellung gestolpert:

Wenn ich einen Cache-Miss habe - gibt es die Möglichkeit einen Callback (zu registrieren (beispielsweise einen der auf dem Key operiert), der automatisch aufgerufen wird, oder muss ich das "per Hand" machen?

Und welchen Sinn macht eigentlich die AddOrGetExisting-Funktion?

Gruß

Thema: Buchstaben nachzeichnen und mit gewisser Toleranz erkennen?
Am im Forum: Rund um die Programmierung

Vielleicht kannst du ein OCR benutzen und auf den "eingemalten" Text loslassen.
Es gibt dort bestimmt verschiedene Schnittstellen dafür (die sind aber tendenziell nicht kostenfrei z.B. Abbyy)

Thema: Weitere Gliederungsebene bei Enums
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ein Einzelnes Enum wird deine Anforderung nicht erfüllen können, aber du kannst ein Enum definieren und anschließen (statische) Zugriffsklassen/Properties definieren, wie zum Beispiel:


namespace MimeType {
  enum MimeTypes {
    // ...
  }

  public static class Audio {
    public static MimeTypes MPEG { get { return MimeTypes.AudioMPEG; } }
    public static MimeTypes WAV { get { return MimeTypes.AudioWAV; } }
  }
}

Das bringt aber halt keinerlei Vorteil ...

Thema: Mustererkennung bei Zeichenketten und Ableitung von Templates
Am im Forum: Rund um die Programmierung

Ich weiß nun nicht, ob der Client schon fest definiert ist, aber ich kann dir zumindest sagen, wie der SQL-Server das Regelt:

Und zwar hat jede Meldung eine Nummer - hinter den Nummern versteckt sich eine Einfacher Format-String und dann wird der Formatstring ausgewertet und die {0} werden ersetzt durch die übergebenen Parameter.

Genau das kannst du auch tun.
Übermittle die Nachricht als Formatstring (oder nur eine NAchrichtennummer) und den variablen Inhalt als array oder Liste.
Dann kannst du einfach die gesamte Meldung erzeugen und außerdem Feststellen, ob du die Meldung schon kennst und referenzieren kannst.

Thema: Icon an Enum binden und in Datagrid darstellen
Am im Forum: GUI: WPF und XAML

Das kannst du mit einem enstprechenden "ValueConverter" erreichen. Zum Beispiel kannst du den Status in eine Farbe übersetzen (sogar bidirektional)

Hier ein (sehr eingeschränktes, quick'n'dirty) Beispiel:


class StringEmptyToVisibilityConverter : System.Windows.Markup.MarkupExtension, IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            var s = value as string;
            return string.IsNullOrEmpty(s) ? Visibility.Collapsed : Visibility.Visible;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return null;
        }

        private static StringEmptyToVisibilityConverter _instance;
        public override object ProvideValue(IServiceProvider serviceProvider)
        {
            return _instance ?? (_instance = new StringEmptyToVisibilityConverter());
        }
    }

Thema: [erledigt] Exe mit Klasse Process starten als Admin mit UseShellExecute=false + RedirectOutputs
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich glaube das geht nicht, und der Antwortende in diesem Thread glaubt das ebenfalls nicht: Stackoverflow - Get error and standard output from an elevated child process

Thema: "Die Assembly xyz, auf die verwiesen wird, hat keinen starken Namen"
Am im Forum: Rund um die Programmierung

Wenn es deine eigene Assembly ist, kannst du ihr einen Starken Namen verpassen, indem du sie beim Kompilieren auch gleich Signierst - das kannst in den Projekteinstellungen setzen.
Dazu brauchst du eine Signatur, die du dir mit sn.exe erstellen kannst.

Thema: Control gesucht zur mehrspaltigen, gruppierten Anzeige von Icons inkl. Drag&Drop und Kontextmenü
Am im Forum: GUI: Windows-Forms

Ich glaube das Grid und eventuell die Liste von Infragristics können so etwas

Thema: ContextMenu soll nicht schließen wenn auf ein ToolStrip geklickt wird
Am im Forum: GUI: Windows-Forms

Was wäre denn in so einem Fall die ToolStripDropDownCloseReason?

AppFocusChange?

Thema: Zugriff aus PHP-Script in .htpasswd-geschütztem Verzeichnis auf Oberverzeichnis: Error 401
Am im Forum: Rund um die Programmierung

401 heißt, dass du nicht Authentifiziert bist - dabei geht es nicht um das PHP Skript, sondern um den Aufrufenden Benutzer (also derjenige der den Webbrowser öffnet).
Der hat nämlich keinen Zugriff auf die Resource, die du dort haben willst.

Auch wenn ich mich wiederholen sollte:
Solche Fehler sieht man, wenn man den Fiddler oder ähnliche Tools verwendet.

Thema: WCF: Authentifizierung um auf AD zuzugreifen
Am im Forum: Netzwerktechnologien

Ich würde Vermuten, dass die Fehlermeldung genau zutrifft (nämlich falsches PW/Username)

Wie ermittelst du denn Passwort und Benutzername?

//Um die Frage genauer zu gestalten:
Nutzt du Kerberos/NTLM, Digest, Basic?
Ist das Hardcodiert?

Thema: Der Remoteserver hat einen Fehler zurückgegeben: NotFound.
Am im Forum: Netzwerktechnologien

Verarbeitet dein Netzwerk WOL überhaupt korrekt?

Thema: Webverweis hinzufügen erzeugt nur asynchrone Vorgänge
Am im Forum: Netzwerktechnologien

// ...
serviceClient.PingCompleted += PingCompleted;
serviceClient.PingAsync();
//...

void PingCompleted(object sender, PingCompletedEventArgs e) {
//...
}

Thema: Webverweis hinzufügen erzeugt nur asynchrone Vorgänge
Am im Forum: Netzwerktechnologien

Hallo Insider,

du benutzt einfach den ServiceClient (bzw. Proxy), und rufst die Asynchrone Methode auf. Vorher abonnierst du das completet event und dort erhälst du in den Event Arguments alle nötigen Informationen.

Thema: [gelöst] Powershell und Exchange Email Adress-Listen
Am im Forum: Rund um die Programmierung

Danke für deine Antwort, aber das war es nicht - es hat eine Weile gedauert, bis ich begriffen habe, was da eigentlich passiert.

In PowerShell erzeugt

@{"SomeName"="SomeValue"}
eine HashTable (System.Collections.HashTable)

Wenn man genau das nach C# übersetzt, klappt es wie erwartet:


var myValue = new System.Collections.HashTable {{ "Add", smptAddress }};
command.parameters.Add("EmailAddresses", myValue);

Thema: [gelöst] Powershell und Exchange Email Adress-Listen
Am im Forum: Rund um die Programmierung

Ich habe ein Problem beim übergeben eines Parameters via Powershell.
Es handelt sich um das Exchange2010 PS-Addin und ich versuche eine Emailadresse (Alias) hinzuzufügen:

using (var pipeline = ExchangeManagementShell.CreatePipeline())
            {
                var command = new Command("Set-Mailbox");
                command.Parameters.Add(IdentityParameter, username);
                //property = "EmailAddresses"
                //value = "@{Add='[email protected]'}"
                command.Parameters.Add(property, value);

                pipeline.Commands.Add(command);

                pipeline.Invoke();
                if(pipeline.Error != null && pipeline.Error.Count > 0)
                    throw new ApplicationFailedException(pipeline.Error.Peek().ToString());
            }

Damit generiere ich folgende Fehlermeldung:
Fehler
Cannot convert '@{Add='[email protected]'}' to the type 'Microsoft.Exchange.Data.ProxyAddressCollection' required by parameter 'EmailAddresses'.
The address '@{Add='[email protected]'}' is invalid: "@{Add='[email protected]'}" isn't a valid SMTP address. The domain name can't contain spaces and it has to have a prefix and a suffix, such as example.com.

Der Befehl den ich ausführen möchte, sieht etwa so aus:

Set-Mailbox grumbler85 -EmailAddresses @{Add='[email protected]'}

Thema: [gelöst] XML aus einem Stream lesen
Am im Forum: Datentechnologien

Zum Stream gehört eine Position. Das ist ein Zeiger, wo du grade im Stream liest. Wenn du stream.Read ausführst, wird AB dieser Position gelesen.
Mit Seek(0, Begin) kannst du diese Position auf 0 zurücksetzen und somit liest du wieder den ganzen Stream.
Ähnlich wie bei einer Kasette könnte man sagen (nur ohne umdrehen).

Thema: [gelöst] XML aus einem Stream lesen
Am im Forum: Datentechnologien

Eventuell musst du deinen Stream "zurückspulen"

stream.Seek(0, SeekOrigin.Begin);

Thema: Wie update ich meine Anwendung auf einem Terminal Server, während die Anwender damit arbeiten?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich würde tippen der "offizielle Ansatz" heißt "reboot for Software-Maintenance"

Wie dem auch sei - falls du zwei Server hast, die in einem Load-Balance Verbund stehen kannst du auch einen entfernen, dort updaten, dann den LoadBalancer auf den Upgedatetn umschalten und selbiges das Update auf dem anderen Server machen - das wäre wohl ne ganz saubere lösung.

Oder du gibst den usern in zukunft einen Link und installierst in verschiedene Verzeichnisse, dann musst du nur den Link ändern (was leider bei den Freigabe-Leuten schwer wird).

Schnelle und recht saubere Lösung per Skript:
Alle Verbindungen schließen (also TS-Sitzungen und SMB-Sitzungen), Software austauschen, Verbindungen wieder erlauben. Das ganze ankündigen und Nachts laufen lassen.

Thema: Ping Abfrage in WPF/C#
Am im Forum: Netzwerktechnologien

Die Klasse "Ping" gibt es seit .NET 2.0 und ist in 4.0 immer noch vorhanden.
Du findest sie in intantiierst sie so:


var p = new System.Net.NetworkInformation.Ping();

Sofern du die System.dll referenzierst ist diese Klasse vorhanden und ohne System.dll wird's langweilig in .NET.