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 AlfameisterT
Thema: Objektinstanzen per Remoting "verschicken"
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Also wenn du auf eine konkrete Instanz einer Klasse zugreifen willst, dann mußt du das als SAO veröffentlichen. (zumindest wenn ich dich richtig verstanden habe)


Hier ein paar Zeilen Code


Mensch peter = new Mensch("Peter");	

RemotingConfiguration.RegisterWellKnownServiceType(
					typeof(Mensch),
					"MyServer.rem",
					WellKnownObjectMode.Singleton);
				
RemotingServices.Marshal(peter,"MyServer.rem");

Thema: Exception bei Marshal.ReleaseComObject
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

@Programmierhans

ne, aber ne gute Idee. Werde ich machen. Aber loswerden muss ich diese Bindung ja trotzdem


Haha, jetzt mußte ich feststellen wenn die Main nicht als STAThread definiert ist, dann funktioniert die Klasse FolderBrowserDialog nicht mehr.
Da wird doch der Hund in der Pfanne verrückt.
Ich kapier nichts mehr...



.

Thema: Exception bei Marshal.ReleaseComObject
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Danke,

das hatte ich eigentlich bedacht, nur beim Schließen hatte ich das vergessen.
Aber mit dem Schalter komme ich auch nicht recht weiter.

Bekomme ständig nicht nachvollziebare Threading Probleme.
Meistens beim Beenden der App. Obwohl ich vorher schön brav alle Threads beende.
Irgendwas stimmt da nicht...

Lasse ich das Attribute ganz weg, dann läufts. Zumindest bis jetzt ;-)


Was bewirkt das Attribute eigentlich beim Compiler ?


.

Thema: Exception bei Marshal.ReleaseComObject
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Also mit diesem Attribut scheine es kein Problem mit dem COM mehr zu geben.
Danke, und ich bin schon Stunden am Fehler suchen...


Jetzt hat sich aber ein neues Problem aufgetan.
Wird eine Form.Close() Methode von einem anderen Thread als Erzeuger geschlossen gibts ne Exception. Det war vorher noch nicht...


Naja da heißt wohl noch bischen weiter suchen


.

Thema: Exception bei Marshal.ReleaseComObject
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

ich bin am Verzweifeln...
Ich benutze ein COM Object welches in einer c# Klasse gekapselt wird.

Jetzt habe ich das Problem das ich eine ExecutionEngineException bekomme wenn ich dieses Object zerstöre.

Wird ein Object vom Hauptthread der Anwendung erzeugt und dann freigegeben gibt es keine Exception.
Wird ein Object von einem anderen Thread erzeugt und zerstört wird, kommt eben diese Exception. Spätestens dann wenn die Anwendung beendet wird.


Ich vermute das ich bei dieser Methode Marshal.ReleaseComObject() den Fehler bekomme. Vermutung deshalb, denn bei mehreren Thread funktioniert das mit dem Debuggen nicht richtig.



.

Thema: Prozess.Start mag nicht
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

danke für die Info.
Ich glaube das dieses Tool das gleiche COM-Object verwendet.

Denn es ist genauso fehlerhaft. " unable to find ..."
Klicke ich aber den Link, so findet Windows das File.


----------------------------------------------

Muss mich korrigieren, das Tool funktioniert schon, nur ist die genaue Anwendung bisla umständlich.

Thema: Prozess.Start mag nicht
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

danke für die Antwort.
Das Problem gestaltet sich doch etwas schwieriger. Mit normalen Files funktionert das mit dem neuen Prozess.
Ich möchte aber .lnk Files öffnen.


Das Programm soll Ziel-Objekte von Windowslinks (.lnk) kopieren.
Wenn sich eine Datei verschoben hat wird sie nicht mehr gefunden. Um die Links aufzulösen benutze ich eine fertige Klasse welche ein COM Object wrappt.
Nu lößt das Teil aber nicht alle fehlerhaften Links auf.

Ich habe bemerkt wenn man die .lnk Files trotzdem öffnet, findet Windows oft das Ziel und repariert die Links.

Deshalb soll das Programm zur Not diesen weg gehen und die .lnk Files direkt öffnen und wieder schließen.

Ich muss mal kucken ob ich den Prozess anhand des Filenames irgendwie im System finde. Ansonsten bleibt das File ja von dem Prozess belegt.



.

Thema: Prozess.Start mag nicht
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

ich möchte ein File (.txt und .doc) öffnen. Das ganz in einem neuen Prozess.
Bei Prozess.Start() öffnet sich das Dokument. Nur dann habe ich kein Zugriff mehr.
D.h. die meisten Eigenschaften von Prozess bringen eine InvalidOperationException, genauso das Handle. Aber warum X(


System.Diagnostics.ProcessStartInfo pInfo = new System.Diagnostics.ProcessStartInfo("z.B.XYZ.doc");	
pInfo.UseShellExecute = true;

Process p = new Process();
p.StartInfo = pInfo;	
p.Start();

Thread.Sleep(500);

if(! p.HasExited )
{
	p.CloseMainWindow();
	p.Close();
}


.

Thema: Debugger beachtet nicht App.exe.config
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ok, Problem gelöst.

Also sowas dämliches.
Ich habe die App.exe.config selber angelegt und zur Projektmappe hinzugefügt.
So gings nicht für Debugger.

Man muss "Hinzufügen" -> "Anwendungskonfiguration" und den Namen auf App.config belassen. Dann wird beim Compilieren automatisch diese Datei mit richtigen Namen in den Projektausgabe Ordner kopiert.


Selber Machen verboten



.

Thema: Fragen zur ArrayList
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Irgendwie kommt dein Problem nicht ganz rüber.
In deiner Klasse DreiKon müßtest du noch Methoden zum hinzufügen und löschen von Dreiecke verpassen. Oder halt passende Operatoren überladen.

Im Prinzip könntest du 3 Klassen bauen.
Eine Klasse Dreick welche die Punkte speichert.
Eine Klasse DreieckCollection (denke mal das soll die DreiKon bei dir machen) welche 3Ecke speichert. Diese könntest du auch von "CollectionBase" ableiten. Das macht das ganze einfacher.
Eine Klasse welche Rechenoperationen für 3Eck Klassen bereitstellt.


.

Thema: Debugger beachtet nicht App.exe.config
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

meine Anwendung verwendet einige dlls. Diese habe ich in Unterordner aufgeteilt.
Damit die Anwendung die Dll's findet habe ich eine App.exe.config angelegt und entsprechend erweitert.
Das funktioniert auch.

Nur bekommt mein Comiler das irgendwie nicht gebacken. Der Compiler kopiert die Datei App.config nicht in den Ordner welcher unter "Debug" in den Konfigurationseigenschaften angegeben ist. Kopiere ich die selber rein, wird die Datei vom Compiler gelöscht. Der Debugger kennt sich dann aber nimmer aus weil er die ganzen Typen nicht findet.

Unter Verweise habe ich die Dlls direkt aus den Unterordnern referenziert.


Ich kann doch nicht immer eine lokale Kopie der Dlls ins Rootverzeichnis erstellen und beim Ausliefern die Dlls einsortieren.


Gibts da keine Möglichkeit?


.

Thema: Crystal Reports
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

ich habe ein Anwendung welche Crystal Reports verwendet und nen Bericht erstellt.
Was muss ich jetzt tun damit die Anwendung auch auf einen anderem PC läuft?
Benutze VS2003 und das CrystalReports Bundle (also nicht die Vollversion).

Also nach Anleitung erstelle ich ein Setup-Projekt, zeige auf die Applikation, pack die merge Module (Crystal_managed..., Crystal_regwiz..., Crystal_DataBaseAccess...) mit rein.
Im Modul Crystal_regwiz2003 gebe ich noch den Serial an, welche ich unter 'Hilfe' von VS2003 Entwicklungsumgebung finde.

Nun klappt der Setup auf dem Entwicklungsrechner, aber auf keinen anderen PC. Setup bricht ohne Fehlermeldung einfach ab.

Hat jemand damit Erfahrung?


.

Thema: Dlls einbinden
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Vielen Dank, das hilft mir weiter.

Thema: Dlls einbinden
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Also dann gibt es keinen Ausweg das Programm Arbeitsverzeichnis mit Unterordner zu strukturieren.
Ich will auch nicht das Windows zu müllen in dem ich die Path Variable setzte.


.

Thema: Dlls einbinden
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

ein Programm umfasst mittlerweile ne ganze menge Dateien auch DLLs. Diese würde ich gerne in Unterverzeichnisse aufteilen, z.B. eins für Plugins, eins für die Applikation selbst, noch noch weitere Unterordner.

Nu teilen sich aber z.B. Plugins Funktionalitäten aus anderen DLL's.
Wenn ich die jetzt in verschiedene Verzeichnisse aufteile denke ich mir das diese dann nicht mehr gefunden wird.

VS packt ja alles ins root Verzeichnis, da ist das kein Problem.

Gibts da nen Ausweg?
Kann man nen Pfad angeben wo DLLs gesucht werden?


.

Thema: Session -Lebensdauer
Am im Forum: Web-Technologien

Hallo,

ich habe da eine Verständnisfrage zu Sessions.

Ich lege eine Session an und diese existiert für alle Seiten eines Webs.
Rufe ich habe eine andere Seite auf dem Webserver auf habe ich zwar die selbe SessionId aber die Session ist leer.

Wieso ist die auf einmal leer?

Problem ist folgendes.
Gibt ne Webanwendung welche alleine läuft. Diese wird aber auch in anderen Webanwendungen aufgerufen (in nem Iframe). Nu wäre es ganz praktisch wenn die existierende Session noch gültig wäre.

Thema: DataGrid - auf Child von DataView Elementen zugreifen
Am im Forum: Netzwerktechnologien

Hallo,

danke für die Links. Bin selber drauf gekommen.
Hab im Debugger einfach mal geschaut wie Container.DataItem aufgebaut ist.
Mit ein paar Casts funktioniert des dann auch. Ein ganz schönes Gefummel


<ItemTemplate>
<%#( (System.Data.DataRow[]) ((System.Data.DataRowView)Container.DataItem).Row.GetParentRows("RELATIONNAME"))[0]["SPALTE"] %>
</ItemTemplate>


.

Thema: DataGrid - auf Child von DataView Elementen zugreifen
Am im Forum: Netzwerktechnologien

Hallo,

aus einem DataSet ziehe ich ein DataView. Beim DS wurden auch Relations definiert.

Source eines DataGrid's ist das DataView.
Wie kann ich bei der Spaltendefinition angeben das hier ein Element aus Child benötigt wird.

Ich habs so versucht
<asp:BoundColumn DataField="Child.spaltenname" ...

natürlich ohne Erfolg

Wie muss ich die Sache dort angehen?

Thema: CSS in UserControls
Am im Forum: Web-Technologien

Hallo,

wie schaut denn die *.cs Datei aus?
Hast du da evtl. Styles für Typen statt für Klassen festgelegt?

Thema: ContextMenu bei Linksklick auf NotifyIcon anzeigen
Am im Forum: GUI: Windows-Forms

Hmm, ein Form natürlich

Hab ich wohl überlesen.

Ich habs grad mal in ner Consolen Anwendung versucht. Irgendwie schmeißt das Icon kein Event.

Ein dummy Control kannst du mit "CreateControl()" erstellen. Dann ist das auch da. Nur mit den Koordinaten will das irgendwie nicht.

Thema: ContextMenu bei Linksklick auf NotifyIcon anzeigen
Am im Forum: GUI: Windows-Forms

durch rumprobieren bin ich auf folgende Lösung gekommen.


private void notifyIcon1_Click(object sender, System.EventArgs e)
{
	Point pointScreen = new Point();
	pointScreen.X = System.Windows.Forms.Cursor.Position.X ;
	pointScreen.Y = System.Windows.Forms.Cursor.Position.Y ;
			
	Point pointClient = this.PointToClient(pointScreen);
	this.contextMenu1.Show(this,pointClient);			
}	

Thema: Remote-Event Fehlermeldung
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

Zitat
Schade nur das keine Events übers Netz verschickt werden. Ich finde das dies eine praktische Sache wäre.

Ich wollte eigentlich nur nochmal dafür ein Beispiel geben. Das ist ja das was Pulpapex in seinem Post erwähnte.
Also es kann sehrwohl die Event-Klasse benutzt werden. Die nimmt ja einem viel Arbeit ab (An- u. Abmelden, sich alle Clients merken, dann in ner Schleife alle benachrichtigen usw)
Zitat
denn hier ist ja wieder ein Client-Objekt an ein Event des Server-Objektes genknüpft

Versteh ich jetzt nicht

Der Server muss in diesem Fall über keine Client-Informationen verfügen. Es ist wurscht welcher Client sich für das Ereignis interessiert.

Aber hast das Bsp. schon richtig verstanden. Ist so ne Art Repeater. Der fängt das Ereignis und gibt es wieder.

Wegen der Sicherheitseinstellungen einfach das vom 2. Post übernehmen.

Thema: Remote-Event Fehlermeldung
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Vielleicht darf ich auch noch eine Lösungsmöglichkeit vorschlagen welche auch die Veröffentlichung der Clientimplementierung umgeht.
Das ganze geht Richtung Event-Channel-Pattern.


Server will Client eine Event, Nachricht oder was auch immer schicken.
Dazu muss der Server irgendwas kennen wo er die Nachricht schicken kann.
Dazu erstellst du eine neue Klasse. Diese bietet ein Ereignis an welche vom Client aboniert werden kann. Damit Rechnergrenzen überwunden werden können muss diese Klasse von MarshalByRefObject erben. Damit alle Teilnehmer (Client u. Server) dieses Objekt kennen wird's in eine Bibliothek gepackt und steht beiden zu Verfügung.

Klasse könnte so aussehen:


public class CNameChangedListener : MarshalByRefObject 
{
	//hier registriert sich ein Client
	public event NameChangedEventHandler NameChanged;
		
	//das ruft der Server auf
	public void OnNameChangedEvent(object sender, NameChangedEventArgs e)
	{			
		if(NameChanged != null)
			NameChanged(sender,e);
	}
}

So schaut dann der Code auf Clientseite aus, hab mich mal auf deinen Code bezogen:


//der Einfachheit haben die EventHandler dieselbe Signatur, Namespace muss evtl. auch angepasst werden

//Object anlgen welches auch der Server kennt (Metainformationen)
nameChangedListener  = new CNameChangedListener ();
			
//lokale Funktion registrieren
nameChangedListener.NameChanged += new RemoteObjects.NameChangedEventHandler(this.MethodeBeiClient);

//Object beim Server registrieren				
iServer.NameChanged += new RemoteObjects.NameChangedEventHandler(nameChangedListener.OnNameChangedEvent);

Thema: Validator Problem
Am im Forum: Netzwerktechnologien

jo, das werde ich wohl auch machen...
Warum komm ich da eigentlich von alleine drauf

Thema: farbwert in hexadezimal
Am im Forum: GUI: Windows-Forms

Hallo,

zur 1. Frage.
Also in HEX könnte man das so umwandeln

Color c = colorDialog1.Color;
String hexColor = String.Format("#{0:X2}{1:X2}{2:X2}",c.R,c.G,c.B);

.

Thema: DataView - RowFilter Syntax
Am im Forum: Datentechnologien

Danke für den Hinweis, das klappt tatsächlich.

Dieses bedeutet soviel, filtere alles raus was mit einer Ziffer beginnt.



string findExpression = 
@"Convert( Convert( Substring(SPALTE,1,1),System.Char),System.Int32) ≥ 48 and " +
@"Convert( Convert( Substring(SPALTE,1,1),System.Char),System.Int32) ≤ 57";

Schaut zwar nicht schön aus, ist aber tatsächlich kürzer als wenn man es mit vielen "SPALTE like '1%' and ..." usw. formuliert.

Thema: DataView - RowFilter Syntax
Am im Forum: Datentechnologien

Hallo,

irgendwie komme ich bei dem DataView nimmer weiter.

Ich möchte als Filter setzen 'alle Datensätze welche nicht mit einem Buchstaben beginnen'.
Einträge sind vom Typ String.

Versteht RowFilter irgendwie Reguläre Ausdrücke? Aus der MSDN werde ich auch nicht schlau.

Thema: Validator Problem
Am im Forum: Netzwerktechnologien

Hallo,

vielleicht habe ich das schlecht erklärt. Denn das Problem wird immer größer.
Also so wie ich das sehe rufen viele Controls automatisch Validate() auf.
So wie z.B. Bearbeitungsbuttons vom Datagrid oder ein einfach LinkButton.
Bei vielen ist das ja sinnvoll.

So nun habe ich aber noch eigene Textfelder auf der Seite. Diesen habe ich einen Validator verpasst.
Leider werden die ja immer mit überprüft wenn Validate aufgerufen wird. (Und die sind ja dann leer wenn z.B. nur im Datagrid ein Eintrag bearbeitet wird)

Ich sehe den ausweg nur, kein Validator zu benutzen, und selber zu überprüfen wenn diese überprüft werden müssen.

Aber danke für den Tipp mit CausesValidation.
Dies kann ich bei einigen Controls in diesem Fall gebrauchen.

Thema: Validator Problem
Am im Forum: Netzwerktechnologien

Hallo,

stehe vor nem verzwickten Problem.

Meine Seite ist ein 2 Bereiche unterteilt.
Einmal ein DataGrid, wo man auch Daten bearbeiten kann.

Dann ist da noch ein Bereich wo man neue Daten hinzufügen kann.
Die Eingaben werden über Validator geprüft.

So wenn ich nun Daten im DataGrid bearbeite wird im Hintergrund auch die Methode 'Validate()' aufgerufen.
Tja leider überprüft der ja auch die Felder für Dateneingabe. Diese sollte ja zu diesem Zeitpunkt leer sein, bzw. nicht beachtet werden.

Und nu

Thema: Zugriff auf xml Datei verweigert
Am im Forum: Web-Technologien

danke für die Zusatzinfo...