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 frisch
Thema: [Snippet] Http Get & Post
Am im Forum: .NET-Komponenten und C#-Snippets

OMG ich versuch schon die ganze Zeit einen Post zu machen und bekomm immer nen Fehler. Mit deinem Snippet klappts, danke. Werde den Code jetzt analysieren.

Thema: Problem mit .net COM DLL und Objekt in referenzierter DLL
Am im Forum: Rund um die Programmierung

Hallo,

also ich habe ja vor kurzem was zum COM Interop gefragt, soweit funktioniert meine DLL auch sehr gut. Ich kann Methoden aus vbScript heraus aufrufen.

In meiner COM Dll habe ich 2 .net DLLs referenziert. Meine COM Dll soll ja eigentlich nur ein Wrapper für die Methoden zu den anderen DLLs sein. Wenn ich aber eine Methode aufrufe, die eine Schnittstelle (erstellt in der referenzierten DLL) zurück gibt, erhalte ich eine Fehlermeldung

Die Assembly "MyAssembly, Version=1.2.0.0, Culture=neutral, PublicKeyToken=ea89749a4160daca" kann nicht gefunden werden.

Der Stack Trace lautet wie folgt:
   bei System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo.GetAssembly()
   bei System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo assemblyInfo, String name)
   bei System.Runtime.Serialization.Formatters.Binary.BinaryConverter.TypeFromInfo(BinaryTypeEnum binaryTypeEnum, Object typeInformation, ObjectReader objectReader, BinaryAssemblyInfo assemblyInfo, InternalPrimitiveTypeE& primitiveTypeEnum, String& typeString, Type& type, Boolean& isVariant)
   bei System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadArray(BinaryHeaderEnum binaryHeaderEnum)
   bei System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
   bei System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCh

Wenn ich die COM DLL aus einer .net Anwendung Invoke, tritt kein Fehler auf. Ich habe auch schon versucht, die referenzierten DLLs in der Methode erstmal in die AppDomain zu laden aber ohne Erfolg.

Im Netz gibts auch keine Hilfe.

Hatte schon mal jemand dieses Problem?

Thema: Wrapper zum bereitstellen einiger Funktionen als COM-Schnittstelle
Am im Forum: Rund um die Programmierung

Zitat von MarsStein
Zitat von MarsStein
eine COM-dll solltest Du ganz normal als Verweis referenzieren können, wie eine .NET-dll
Wenn Du das machst, kannst Du die COM-Dll von inem .NET-Projekt aus testen.
Mit der Problematik, dass ich ja bei direkter Referenzierung frei nach Launer komplexe Datentypen zurückgeben kann, ich bei COM jedoch beschränkt bin bzw. das Marshalling explizit definieren muss.

Könnte also sein, dass ich eine DLL herausgebe, die bei mir zwar funktioniert, bei C++-Entwicklern allerdings nicht.

Thema: Wrapper zum bereitstellen einiger Funktionen als COM-Schnittstelle
Am im Forum: Rund um die Programmierung

Hallo MarsStein,

habe ich gerade auch nachgelesen :)

Warum COM?
Eine Partnerfirma, welche meine Schnittstelle nutzen möchte, entwickelt auf Navision und angeblich können die DLLs nicht direkt anbinden. (Habe selbst keine Erfahrung mit Navision)

Gibt es eine Möglichkeit, meine COM-Methoden zu testen? Bin leider nicht erfahren mit C++, sonst würde ich da die Aufrufe schreiben.

Wenn es keine andere Möglichkeit gibt, werde ich wohl nicht drum herum kommen, eine C++ Anwendung zum Testen zu schreiben.

Thema: Wrapper zum bereitstellen einiger Funktionen als COM-Schnittstelle
Am im Forum: Rund um die Programmierung

Hallo,

ich habe eine IPC-Schnittstelle in mein Projekt eingebunden. Nun muss es auch möglich sein einige Funktionen der IPC-Schnittstelle mittels COM (DLLImport) anzusprechen. Den Wrapper habe ich soweit schon gebaut. Zum testen enthält die DLL ein Interface und eine Klasse, beides implementiert die Methode "Test" welche nur einen Boolean "true" zurück gibt. Die DLL ist als COM registriert, wenn ich aber versuche einen DLL Import zu machen, erhalte ich eine EntryPointNotFound-Exception.

Ich habe mir nun schon -zig Tutorials durchgelesen und meine Konfiguration überprüft, es hat jedoch leider nichts geholfen. Der Dependency-Walker macht mir auch ziemliche Probleme, dieser zeigt mir nämlich nichts an. Muss ich also davon ausgehen, dass die Methode nicht exportiert wird?

Hier mal der allgemeine Aufbau meines Projekts:

COM-Dll:

[Guid("6091A51C-F3A7-4b9f-AD5F-ACA89C77D905"),
    InterfaceType(ComInterfaceType.InterfaceIsIDispatch),
    ComVisible(true)]
    public interface IIpcWrapper {
        [DispId(1)]
        bool Test();
    }

[Guid("EF66017D-8A42-40ce-A372-A6740D55E9F2"),
    ClassInterface(ClassInterfaceType.None),
    ProgId("MyProgId"),
    ComVisible(true)]
    public class IpcWrapper : IIpcWrapper {
        public IpcWrapper() {
        }

        [DispId(1)]
        public bool Test() {
            return true;
        }
    }

Aufrufendes Programm:

public class ComCaller {
        [DllImport("MyDll.dll")]
        public static extern bool Test();

        public void DoSomething() {
            bool result;

            result = Test();
        }
    }

Thema: Dickes Problem beim übertragen von Daten
Am im Forum: Datentechnologien

Hallo Loewchen0507,

die Fehlermeldung kenne ich aus einem Datenbanksystem welches wir verwenden. Versuch mal die Größe der Spalte zu erweitern (Also varchar(500) zu varchar(1000) oder smallint zu int)

Thema: WebService - Große Anzahl an Objekten zurückgeben -> WebException
Am im Forum: Web-Technologien

Hallo,

Zitat
Ich nehme an die Objekte werden aus einer Datenbank gelesen, wäre es nicht möglich dass die Anfrage einfach viel zu lang dauert und ein Timeout greift?
Nein, das würde mir ja während des Debuggens auffallen :)


Also habe das ganze aber mal Testweise in einen Stream serialisiert und mir dann das Xml als String zurückgegeben. Der String ist 7.370.043 Zeichen lang... Da bleibt mir wohl nur die Möglichkeit, das ganze irgendwie als Dateidownload bereit zu stellen und dann irgendwie in den Client zu deserialisieren.

//Nachtrag: Habe jetzt mal nen Stresstest gemacht und bin zu folgendem Ergebnis gekommen

Länge ok zum senden: 2885333
Länge nicht ok zum senden: 2888833

Ich schau mir nochmal meine Konfigurationsdateien an...

Thema: WebService - Große Anzahl an Objekten zurückgeben -> WebException
Am im Forum: Web-Technologien

Hallo MarsStein,

1. richtig, wenn ich z.B. nur 10 Objekte in die Collections einfüge tritt der Fehler nicht auf.
2. die Exception sagt leider sehr wenig aus aber ich poste sie trotzdem mal:

System.Net.WebException wurde nicht von Benutzercode behandelt.
  Message="Die zugrunde liegende Verbindung wurde geschlossen: Die Verbindung wurde unerwartet getrennt.."
  Source="K3.Import"
  StackTrace:
       bei XXX_DoWork(Object sender, DoWorkEventArgs e) in XXX.cs:Zeile 174.
       bei System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
       bei System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
  InnerException: 


Der Webservice selbst liefert keine Fehlermeldung beim debugging...

Thema: WebService - Große Anzahl an Objekten zurückgeben -> WebException
Am im Forum: Web-Technologien

Hallo,

ich habe einen WebService erstellt. Dieser funktioniert soweit einwandfrei. Heute ist eine neue Methode hinzugekommen. Diese liest Objekte aus unserer Datenbank aus und gibt diese an eine Clientanwendung zurück. Das Zurückgegebene Objekt besteht aus 4 Listen, wobei Liste 1 eher eine Liste von einer komplexen Klasse ist. Liste 2-3 enthalten jeweils eine Klasse, die nur 2 int und 1 bool Property enthalten.

Jedoch kann die 4. Liste bis zu 50.000 Einträge besitzen. Ist dies der Fall, erhalte ich vom Client eine WebException: "Die zugrunde liegende Verbindung wurde geschlossen: Die Verbindung wurde unerwartet getrennt.."

Habe im WebService in der Web.config die Werte meines HttpBindings raufgesetzt aber komme dennoch zu keinem Erfolg.

Muss ich etwa im Client selbst noch etwas einstellen, damit dieser so große Datenpakete vom WebService erhalten kann?

Der Fehler taucht übrigens während des Debuggens auf (Service und Client im Debug). Live will ich das so nicht testen.

Danke.

Thema: Wer spielt Star Craft 2?
Am im Forum: Smalltalk

Hallo,

habe SC2 [UK-Import] vorbestellt und es wurde am Freitag losgeschickt. Ist bis heute leider noch nicht angekommen... :(

Hätte mir vielleicht doch lieber die digitale Version zulegen sollen.

Thema: Entpacken einer RAR im C# code
Am im Forum: Rund um die Programmierung

Zitat von DFDotNet
Ich kann dir ICSharpCode.SharZipLib empfehlen
Kann das denn mittlerweile RAR-Dateien? Oder etwas schon immer? Wir setzen das nur für Zip ein.

Thema: Anzahl Datensätze aller Tabellen einer MSSQL Datenbank anzeigen
Am im Forum: Datentechnologien

Hallo,

hatte das neulich für eine meiner DBs gebraucht.

Hier das Script (SQL2005):

SELECT DISTINCT Tab.Name 
FROM sysindexes Ind
INNER JOIN sys.tables Tab
ON Ind.id = OBJECT_ID(Tab.Name)
--AND Ind.rows > 0
ORDER BY Tab.Name
Edit: "AND Ind.rows > 0" sorgt dafür, nur Tabellen mit Zeilen anzuzeigen.

Thema: Form1 sperren wenn Form2 drüber liegt.
Am im Forum: GUI: Windows-Forms

Hallo Leute,

man kann sich das Leben auch schwer machen :) warum nicht einfach ein Panel in die Form legen, die alle Controls beinhaltet und nur dieses Panel disablen...

Man könnte sich auch eine CustomForm bauen die immer ein Panel beinhaltet.

Thema: Coding Styles Horror
Am im Forum: Smalltalk

Zitat von JAck30lena
... ich fand eher den namen erwähnenswert... und ich bezweifle das du das schon mal programmiert hast, ohne von exception zu erben, da man nichts fangen kann, das nicht von exception erbt....
Er hat es halt erwartet :D

Thema: Was hören .net Programmierer?
Am im Forum: Smalltalk

Zitat von Schamese
Nutzt von euch jemand Last.fm?

103778 plays since 23 Jan 2007

Soviel dazu

Thema: ASP.net MVC Sessions
Am im Forum: Web-Technologien

Hallo freak131,

mit cookieless auf false bekommst du Probleme bei Browsern, die keine cookies zulassen/unterstützen. Stelle das lieber auf AutoDetect.

Thema: [gelöst] Form Resize funktioniert nur noch bei größer machen
Am im Forum: GUI: Windows-Forms

Hallo TheGear,

Dock und Anchor haben hiermit garnichts zutun.

Die Eigenschaft MinimumSize könnte hier höchstens das Problem sein, kommt halt drauf an ob du die im Code änderst.

Passiert etwas bei dem Form_SizeChanged-Event?

Thema: Druckereinstellungen auslesen/ändern
Am im Forum: Rund um die Programmierung

Hallo cualalumpur und Willkommen,

dass der Hersteller dir keinen Support bietet ist schlecht. Wenn es aber eine Möglichkeit gibt, den Drucker via telnet oder ftp anzusteuern, kannst du ja einfach einen CMD Process starten und die Befehle an den Process geben und eben die Werte wieder auslesen.

Schau dir dazu einfach mal die Process-Klasse an.

Thema: Kommentare (und Regions) zur optischen Gliederung (z.B. Trennlininen) einsetzen: Best Practice?
Am im Forum: Rund um die Programmierung

Hallo,

Zitat
Manchmal kommt es aber vor, dass man in einer File mehrere Methoden hat, die man gruppieren kann... aber wie trennt man jetzt solche Gruppen optisch von einander?

Schau dir mal

#region Irgendwas
#endregion Irgendwas
an.

Ich habe mir hierfür z.B. ein Snippet gemacht (Anhang) auf das du mittels reg zugreifen kannst

Thema: Frage zum überschreiben von Methoden
Am im Forum: Rund um die Programmierung

Hallo,

möglich wäre es doch auch, einen Event zu feuern, der ähnlich wie die KeyPress-Events eine Handled-Eigenschaft hat.

Beispiel (ist jetzt ungetestet aber ihr wisst schon worauf ich hinaus will):

MyFirstClass {
 public void Lock() {
  MyEventArgs args = new MyEventArgs();
  OnLock(this, args);
  if(!args.Handled){
   // Do Something
  }
 }
}

MyEventArgs {
 public bool Handled { get; set; }
}

MySecondClass : MyFirstClass {
 MySecondClass() : base() {
  base.Lock += new EventHandler<MyEventArgs(...);
 }

 private void BaseLock(object sender, MyEventArgs e){
  e.Handled = true;
  // Do Something
 }
}

Thema: Mit Visual Studio 2010 für .NET 3.5 entwickeln?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo 223,

unter VS2008 zumindest "Eigenschaften des Projekts öffnen" -> "Reiter Anwendung" -> "Zielframework"

Denke mal, das ist unter VS2010 nicht sonderlich anders.

Thema: DataSet - Keine Schnellansicht im Debugger
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hi Jack,

naja, wir haben das Ding via Hinzufügen - Neues Element - DataSet erstellt (typisiertes DataSet eben). Haben darin allerdings Datenfelder mit eigenen Klassen (Enums) als Datentyp. Daran sollte es aber nicht liegen.

Thema: DataSet - Keine Schnellansicht im Debugger
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

Problembeschreibung: In unserem Projekt sind DataSets unter Verwendung. Ich kann nach befüllen eines DataSets die Daten aber nicht einsehen. (Siehe Anlage)

Sonderfall: Das Verhalten tritt nur bei unserem großen Projekt auf. Bei kleineren Projekten mit nicht-typisierten DataSets/DataTables gibt es keinerlei Probleme.


Kennt jemand dieses Verhalten bzw. eine Möglichkeit, die Datensicht der DataSets zu reparieren?

Thema: Complementär Farbe ermitteln
Am im Forum: Grafik und Sound

Hallo inflames2k,

ja stimmt, bei einfachen Komplementärfarben ist das wohl so. Habe mich verwirren lassen weil ich zuerst an Farbharmonien gedacht habe sorry. Dazu gibts aber in den von mir geposteten Link unter "Color Harmonies" schöne Beispiele für die verschiedenen Farben. Falls es dir um Design geht kannst du dir das ja mal anschauen.

Thema: Complementär Farbe ermitteln
Am im Forum: Grafik und Sound

[Offtopic]
@Lector: Ganz so einfach ist das nicht. Invertierte Farbe != Komplementärfarbe. Zu Komplementärfarben gibt es auf Photoshop Turoials einen guten Beitrag: Simple Practical Color Theory
[/Offtopic]

Thema: Dynamische Panel hinzufügen
Am im Forum: GUI: Windows-Forms

Hallo Meinerses,

sind die Positionen / Größen der Panels auch unterschiedlich?

parray[i].Controls.Add(label);
parray[i].Controls.Add(textbox);
parray[i].Controls.Add(label);
Fügt das gleiche Label 2 mal hinzu, d.h. es wird sich nichts ändern. Du müsstest das zweite Label erst neu instanziieren.


Beachte zusätzlich: [Hinweis] Wie poste ich richtig? Punkt 6

Thema: Datenbank Versions Check und Updates
Am im Forum: Datentechnologien

Hallo baer999,

sql column exists 3. Treffer: SQL -> Check Column exists in table, if not, add

Thema: Welchen Clean Code Developer Grad habt ihr?
Am im Forum: Smalltalk

@MrSparkle: Ganz so einfach ist es nun nicht. Du fängst an im Roten Grad. Wenn du alle Konventionen vom Roten grad 21 Arbeitstage lang einhälst ohne das Band einmal wechseln zu müssen, dann kannst du in den nächsten Grad (Orange) wechseln. Im Orangen grad musst du dann die Konventionen vom Roten und Orangen Grad einhalten. Das geht dann immer weiter bis zum letzten Grad.

Wann wechselst du das Band?
Wenn du bemerkst, dass du eine Konvention nicht eingehalten hast, wechselst du das Band bzw. das Band wechselt einfach den Arm (z.B. vom linken auf den rechten Arm).

Kannst du alles hier nachlesen.

Thema: Welchen Clean Code Developer Grad habt ihr?
Am im Forum: Smalltalk

Hallo,

peinlich, ich glaube von CCD schon mal gehört zu haben, weiß aber nicht mehr wo. Habe jetzt mal einen Blick auf die Page riskiert und es hört sich doch sehr interessant an. Werde mir die Regeln soweit mal ausdrucken und in aller Ruhe durchlesen und gleichzeitig das schwarze Band bestellen ;)

Danke für den Post.

[Offtopic]Wäre es vielleicht eine gute Idee für CCD auf der Startseite zu werben?[/Offtopic]

Thema: Stimmt mein Ansatz von MVC bei C#?
Am im Forum: Rund um die Programmierung

Hallo ambientCS,

aus meiner Sicht sollte das Model nichts berechnen. Das Model enthält nur die Daten.

Bei uns ist das so: Du klickst auf einen Button. Es wird eine Methode im Controller aufgerufen. Der Holt die spezifischen Models und bestückt dies mit Daten. Das Model hat dann z.B. die Eigenschaft Price, Amount und Total. Der Controller schreibt in Total dann Price * Amount und gibt dann den View zurück.