Laden...
jreusch
myCSharp.de - Member
44
Themen
296
Beiträge
Letzte Aktivität
vor 11 Jahren
Dabei seit
25.08.2007
Website
Erstellt vor 13 Jahren

Hallo rollerueckwaerts,

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.

Grüße

Erstellt vor 13 Jahren

Hallo jimmyBi,

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.

Viele Grüße
Julian

Erstellt vor 13 Jahren

Also ich habe mit dem ANTS Performance Profiler von Redgate ziemlich gute Erfahrungen gemacht.

Den gibts auch als Trial-Version mit voller Funktionalität für 14 Tage zum Testen.

Erstellt vor 13 Jahren

Der generierte asychrone Completed-Handler stellt ein Property "Error" bereit. Da steckt auch die Exception drin, falls eine aufgetreten ist.

Also einfach:


if(Error != null)
   throw Error;

Erstellt vor 13 Jahren

Hi Roland,

ich habs inzwischen hinbekommen.

Ich habe einen eigenen AuthentificationManager geschrieben, der jede Nachricht mitliest und ggf. einen Custom Principal einklinkt.

Dann gibt es eine eigene AuthorizationPolicy, die den Principal wiederrum aus der Nachricht holt und in den evaluationContext der Abfrage setzt.

Das wars dann auch schon.

Ja ich wollte es gerne über die WCF-Funktionalitäten veröffentlichen. Gibts da Probleme?

Viele Grüße
Julian

Erstellt vor 13 Jahren

Hallo liebe Community,

ich stricke gerade an einem Service und umschreibe kurz meine Anforderungen:

Die Schnittstelle sollte nachher über ein Rest-Interface angeboten werden und folgendermaßen aufgebaut sein:


        // Returns SessionKey
        string Login(string username, string password);

        void Logout(string sessionKey);

        [PrincipalPermission(SecurityAction.Demand, Role = "Administrator")]
        void DoSth(string sessionKey);

        [...]

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?

Der Service wir später auch auf Azure gehostet.

Vielen Dank und viele Grüße
Julian

Erstellt vor 13 Jahren

Hallo Crone,

ich habe deinen Beitrag nun dreimal gelesen und immer noch nicht wirklich verstanden was du willst. Du musst unbedingt üben dich besser auszurdücken.

Kannst du vielleicht eine Skizze anfertigen und daran beschreiben was du vor hast?

Viele Grüße

Erstellt vor 13 Jahren

Hallo Maddinel,

hast du schon [FAQ] Controls von Thread aktualisieren lassen (Control.Invoke/Dispatcher.Invoke) gelesen?

Ohne die Klassen genauer zu kennen ist MediaPlayer wohl ein Control und das Tick-Event wird nicht im GUI-Thread ausgelöst.

Erstellt vor 13 Jahren

Nein,

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());

Erstellt vor 13 Jahren

Hallo bZzR,

nun muss ich beim einlesen diese ziffern zwischen speichern? in form in einem array und einer schleife?

Habt ihr ein Steuerzeichen vereinbart, das angibt wann die letzte Ziffer gesendet wurde? Oder sind es immer vier Ziffern?

Eigentlich egal... das einfachste ist wohl ein StringBuilder, wo du jede Ziffer einfach anhängst und am ende den String in den richtigen Typ parst.

10 von 296 Beiträgen