auf der Seite json2csharp kannst du dir Klassen zu einem Json-Objekt generieren lassen. Die Ergebnisse sind dort meistens ganz vernünftig:
public class Result
{
public string kontaktid { get; set; }
public string typ { get; set; }
public string nachname { get; set; }
public string vorname { get; set; }
}
public class RootObject
{
public string id { get; set; }
public List<Result> result { get; set; }
public object error { get; set; }
}
Was man im Json-String nicht direkt sieht, wird dann sofort klar: In deinem Rootobjekt steckt also mehr als nur eine Liste von Results.
Kann mir denken, dass der (De-)serializer da nicht drauf klarkommt.
Beim object error könnte er danach auch noch Probleme machen... zur Not rauslöschen bzw. den Typ ersetzen.
im Quellcodeeditor sind oben zwei Combo-Boxen. In der Linken wählst du Klasse, Interface, etc. aus der derzeitigen Datei aus. In der rechten kannst du dann zwischen den Methoden hin und herspringen.
Sprich: Bis auf Login geht jedem Aufruf ein SessionKey vorran, mit dem der User zunächst authentifiziert und danach ggf. authorisiert werden soll. Dazu würde ich gerne das rollenbasierte Modell aus dem Framework nutzen.
Ich habe also zunächst einen eigenen RoleProvider implementiert, der das Rollenmodell aus einer SQL Azure DB bereitstellt und diesen entsprechend konfiguriert.
Das Problem ist nun die Authentifizierung. Wie kriege den Principial im HttpContext -vor dem Aufruf- entsprechend auf den User eingestellt, der hinter dem SessionKey steckt?
du liest gerade alle übertragenen Zeichen aus dem Buffer und schreibst diese viermal hintereinander in den StringBuilder.
Ich dachte an sowas:
StringBuilder builder = new StringBuilder();
while(builder.Length < 4) {
builder.Append(serialport1.ReadChar());
}
int value = int.Parse(builder.toString());
Ich nutze schon seit einigen Jahren Xmarks und bin damit super zufrieden. Neben Bookmarks stehen auch noch viele andere Optionen zur Verfügung, welche ich aber teilweise auch für kritisch halte, z.B. Passwortsynchronisation, aber die muss man ja nicht nutzen.
EDIT: Ich kann keinen Verweis in VB machen, sondern die DLL muss genau so implementiert werden wie im Code ("Private Declare Function...usw"), da meine .dll am Ende einfach mit der original .dll ausgetauscht werden soll!
ich bin mir nicht sicher, aber ich glaube das steht nicht im Widerspruch. Solange die Schnittstellen deiner .dll und die der orginal.dll gleich sind, solltest du sie nachher einfach austauschen können.
herzlich willkommen im Forum. Zu Beginn solltest du [Hinweis] Wie poste ich richtig? lesen, denn deine Frage fällt ganz klar in die Grundlagen.
Mit
this.Kasse.AccountClickEvent += new MySoftware.Kasse.AccountClickEventHandler(this.Kasse_SaldoClick);
abbonierst du das besagte Event und die Methode "Kasse_SaldoClick" wird aufgerufen, andernfalls eben nicht. (C# arbeitet nicht mit Namenskonventionen für die Eventbindung).
Also hast du drei Möglichkeiten:
Du abbonierst das Event selbst (bspw. im Konstruktor der Klasse, nach Initialize)
Du kannst unter den Properties im Designer das Event binden lassen, dann taucht es auch in der .designer.cs Datei auf.
Du schreibt die Zeile in die .designer.cs Datei selbst rein. Dabei muss du aber vermutlich die gleiche Notation wie der Designer verwenden, sonst wirft ers wieder raus oder macht Mist.
Bei der Methode mit dem Hashwert müsste ebenfalls darauf geachtet werden, dass dieser Wert bei allen erdenklichen Kombinationen immer ein eindeutiges Ergebnis liefert.
Deshalb meinte ich ja eine injektive Funktion. Ich habe mal eine reineditiert.
uff, ich habe den Text nun 3x lesen müssen, um eine Ahnung davon zu bekommen, was du vor hast.
Du willst alle Permutation von [0, 0] bis [n, n] berechnen und doppelte (bzw. die die in umgekerhter Reihenfolge schon einmal aufgetaucht sind) aussortieren?
Eine schöne Lösung fände ich, diese Paare [x,y] als Klasse zu kapseln und HashCode() so zu überschreiben, dass [x,y] und [y,x] den gleichen Hashwert liefern. Das würde ich so machen, dass ich diese sortiere (bspw. größere Zahl immer links) und danach eine bijektive Funktion von N² -> N (eigentlich reicht sogar eine injektive) konstruiere. Google sollte dir da helfen.
Weil es mich grad interessiert hat und ich nochmal kurz auffrischen wollte habe ich eine gesucht: hash = 2^(x-1)*(2y-1)
Im Anschluss einfach alle erzeugen und in ein HashSet packen.
Dieses Aufrufen der Form soll von mehreren Stellen aus möglich sein. So erzeuge ich die Form und übergebe die ID, den Rest macht die Form...
Weiß nicht, gilt es als schlechter Stil wenn man das so macht?
Die Validierung ist eigentlich die Aufgabe der Business Logic. Die Form sollte nur die Daten präsentieren und die Aktionen des Benutzers an die BL weiterreichen.
Ich habe zur Zeit ein Programm das viele Daten über FTP bezieht und [...]
Zitat von Midnight Run
Sollte man den Benutzer warten lassen ?
Die zweite Möglichkeit wäre die Daten mit der Zeit nachzuliefern. Dann muss der Benutzer nicht warten, bis alles runtergezogen ist und kann mit den bestehenden Daten schon arbeiten.
Zitat von Midnight Run
Das bedeutet wenn ich in meinem Thread mehrere Methoden aufrufe, sollte man auch diese mit einer Überprüfungen ausrüsten ? Mir würde das jetzt aus dem Kopf dann zu Komplex werden oder verstehe ich da was falsch ?
Eine allgemein gültige Antwort hierzu gibts wahrscheinlich nicht, aber in der Regel ist das nicht oder nur bei wirklich zeitintensiven Operationen nötig und dann nicht unbedingt komplex.
Wo meinst du denn so eine Überprüfung zu benötigen?
Für das beenden des Threads "von außen" wird die Variable _stopThread auf wahr gesetzt. Dabei ist natürlich klar, dass er seine derzeite iteration noch beendet. Dann kann man davon ausgehen, dass der Datenzustand noch konsistent ist, und nicht halb fertige Operationen ausgeführt wurden.
Mit Thread.Abort() wird in der Methode die besagte Exception geworfen. Die kannst du fangen und behandeln.
Um den Thread beim schließen des Programms zu beenden, kannst du ihn als "Background-Thread" flaggen. Das heißt er stirbt, wenn der Erzeuger stirbt (bpsw. dein GUI-Thread).
Ist dein Codeschnipsel da nur ein Beispiel oder machst du das 1:1 so? In dem Fall bringt dir Threading nichts, weil du nur die Arbeit in einen anderen Thread verlagerst und den derzeitigen Thread solange blockierst, wie dieser beschäftigt ist.
Dann leg dir zur Speicherung der Daten eben eine Klasse an. Wie die Kommunikation zweier Formulare funktioniert findest du hier: [FAQ] Kommunikation von 2 Forms .
du wirfst hier glaube ich einiges durcheinander, oder drückst dich nicht klar genug aus was du vor hast. Ich vermute bei der Formulierung das gleiche wie Grumbler85, nämlich dass du dich nochmal mit den Grundlagen von C#.Net auseinander setzen solltest.
Mir kommt es so vor als würdest du mit dem Interface die ".h"-Datei der üblichen C-Vorgehensweise ersetzen wollen, sprich die Methoden deklarieren, die die Klasse zur Verfügung stellt. Das brauchst du in C# nicht mehr - ein Interface ist dafür da, strikt vorzuschreiben, welche Methoden eine Klasse, bzw. später ein Objekt zur Verfügung stellen muss.
Wenn das wieder erwartens doch eine lose Kopplung der dahinter befindlichen Datenbank werden soll (zum leichten Ausstaussch), gibt es dafür schon fertige Lösungen.
ich suche zurzeit nach einer Möglichkeit einen schnellen Einstieg in WPF zu finden. Vor einem halben Jahr habe ich mal die ersten kleineren Sachen zusammengefriemelt um ein Gefühl für WPF zu bekommen, aber hatte irgendwie noch sehr das Gefühl, dass ich gegen das System anprogrammiere.
Nachdem ich nun endlich wieder etwas mehr Freizeit habe, würde ich mich gerne nochmal mit dem Thema befassen, weil ich einfache davon ausgehe, dass es in den nächsten Jahren sehr essentiell für Windows Programmierer sein wird (oder schon ist).
Was Windows Forms angeht, bin ich denk ich ganz fit und suche eher nach einem "Schnelleinstieg", "Was ist anders?", ...
Ich suche ein Buch, Tutorial, Webcast, was auch immer, das so oder so ähnlich aufgebaut ist und mit dem man einen sauberen und schnellen Einstieg in die WPF findet.
Oder würdet ihr mir empfehlen, ein komplettes Buch durchzuarbeiten?, mit den Galileo Computing Bücher hatte ich eigentlich immer recht gute Erfahrungen gemacht. Dann liest man nur vermutlich viel Zeug, das man schon kennt, weil es eben gleich geblieben ist.
ich denke es sollte klar sein, dass das von vorne rein nur eine Demo war, um das Problem nachzustellen.
Er wird in der richtigen Anwendung sicherlich eine entsprechende Abfrage formuliert haben.
Aber die Frage von ujr ist allerdings berechtigt. Vielleicht gibt es dort auch noch mehrere Fälle (Datensatz nicht korrekt, kann korrigiert werden, etc...). Naja alles nur Raterei und der TS scheint zufrieden zu sein...