Also ich würde IPC für ein C# Windows Service eher über DCOM machen - einfach nur weil ich das schonmal gemacht habe und daher weiss wie es geht (und schon einiges an Helper-/Boilerplatecode rumliegen habe). Aber viele Wege führen nach Rom. Vielleicht ist .NET Remoting sogar einfacher.
Raven280438 schrieb:
Mein Problem: Woher weis die Klasse "ControlClass" dann, ob eine Verbindung besteht?
"Verbindung" ist in dem Zusammenhang ein schwieriges Wort, denn "Verbindung" in dem Sinn gibt es eigentlich keine. Also schon, aber an die kommst du Serverseitig nicht wirklich dran.
Was du mit .NET Remoting machen kannst, ist einem fremden Prozess zu ermöglichen Objekte einer Klasse in deinem Prozess zu erzeugen, und Funktionen darauf aufzurufen.
D.h. du "merkst" dass eine "Verbindung" besteht dadurch, dass das .NET Framework auf einmal ein Objekt der Klasse "ControlClass" erzeugt, und dann ne Memberfunktion dieses Objekts aufruft.
Das Ende der Connection mitzubekommen ist dagegen etwas schwieriger. Gibt einige Ansätze, kannst ja selbst mal zu dem Thema googeln.
Prof84 schrieb:
???
System.Windows.Media.PointCollection
IEnumerable <Point>. Reverse <Point> ()
IEnumerable <Point>. Concat <Point>(IEnumerabe <Point> second)
Was danach ist, ist unwichtig.
Natürlich ist nicht unwichtig was danach ist.
Wenn du danach das Original modifizierst (also das Objekt das du als "this" Parameter an Concat bzw. Reverse übergeben hast), dann kann es nicht gehen.
Hier auch eine Implementierung, kannst sogar auf der Seite mit anderen Sprachen vergleichen:
http://rosettacode.org/wiki/Evaluate_binomial_coefficients#C.23
Ich behaupte das Sql-Statement ist falsch. Steht aber auch in der Fehlermeldung.
Desweiteren würde ich Parameter verwenden anstatt stumpf das Sql-Statement zusammenzustückeln.
Für automatische Code-Formatierung im VS empfehle ich {url=http://www.codemaid.net/]CodeMaid[/url].
PS: Ich bezog mich bei meinem vorherigen Beitrag auf den von freaky.
Selber nutze ich bei mehreren [i]using[i] auch eure Schreibweise - mir ging es nur um das Verständnis.
Int als rückgabe hatte ich gewählt um die 3 Zustände (keine Klammer,Klammer oder fehlerhafte Klammersetzung) zu bekommen.
Mit Exceptions habe ich bis dato noch nichts gemacht, werde mir es mal anschauen was das so kann
Ich hab hier einen Out-Of-Process COM Server der in C# implementiert ist.
Dessen Type-Library erzeuge ich mit tlbexp.exe , was auch schön funktioniert.
Verwendung aus C++ Projekten heraus ist auch kein Problem, geht alles wunderbar.
Jetzt möchte ich diesen COM Server aus einem C# Projekt ansprechen. Naheliegend wäre einfach eine COM Referenz in das Projekt reinzuklicken bzw. tlbimp.exe zu verwenden.
Beide weigern sich aber mit der Fehlermeldung
The ActiveX type library 'XXX' was exported from a .NET assembly and cannot be added as a reference.
Visual Studio meint noch "hilfreicherweise"
Add a reference to the .NET assembly instead.
Mit ist klar was MS sich dabei gedacht hat, aber ... herrjeh, das ist ein Out-Of-Process COM Server, ich kann und will keine Referenz auf die .NET Assembly statt dessen verwenden.
Ich hab schon länger gesucht, finde aber keine Tips wie man das umgehen kann.
Schön wäre ein automatisierbarer Weg. Jedes mal von Hand an der TLB rumzufummeln oder aber handgeschriebene COM Import Klassen in einem C# Projekt zu pflegen ... darauf würde ich gerne verzichten.
Also. Weiss jemand wie man das hinbekommen kann?
EDIT: Grammatik
NullBockException schrieb:
frage ist, ob das besser bzw. performanter ist, Vorteil ich kann dann reflections um typen zu filtern etc.
Schneller als was? Als Reflection? Mir ist noch nicht wirklich klar, wie dein Typsystem bisher technisch funktioniert.
Auf jeden Fall wird die Performance von dynamisch kompiliertem Code kaum zu schlagen sein. Da kommt Reflection nicht ran. Außer, du machst quasi nichts mit deinen neuen Typen und brauchst sie nur ein mal, dann wär das natürlich eher kontraproduktiv.
Reflection ist an sich schon recht schnell in .NET. Ich hab früher einiges damit gemacht und es war einfach schnell genug, es war bisher nicht wirklich nötig, dynamisch Code zu generieren. Wenn dir die jetzige Performance deiner Lösung auch reicht, brauchst du das ja auch nicht verbessern. Außer zum Spass.
NullBockException schrieb:
Danke, aber das kenne ich:) ich meinte wie kann ich automatisch die Anzahl der Wellen zubereite erhöhen bzw. Verringern?
Wohl kaum. Ich kopier Dir mal ein Beispiel aus dem Wegener in XAML.
<PathGeometry>
<PathFigure StartPoint="100.50">
<QuardraticBezierSegment
Point1="300.100"
Point2="100.150" />
<!-- . oder , hängt von Kompilereinstellung ab -->
</PathFigure>
etc
ungetestet, auf Tablett getippt.
Jetzt brauchst Du nur die Punkte für Frequenz und Amplitude neu zu berechnen nach Abstand für die Segmente. Trivial ... Das war leicht im Netz zu finden.