Laden...

Wieso werden "Pseudo" .NET Wrapper umständlich & mit statischen Methoden implementiert?

Erstellt von Scavanger vor 7 Jahren Letzter Beitrag vor 7 Jahren 1.427 Views
Scavanger Themenstarter:in
309 Beiträge seit 2008
vor 7 Jahren
Wieso werden "Pseudo" .NET Wrapper umständlich & mit statischen Methoden implementiert?

Ich muss mal kurz Frust ablassen:

Kennt das jemand?
Man hat ein neues Projekt und benötigt eine native Bibliothek, freut sich schon mal das es einen .net Wrapper gibt und dann bekommt man sinngemäß sowas serviert:


int err = FancyMethod(int foo, string bar);
if (err != 0)
     // Fehlerbehandlung hier


Nicht zu vergessen das der ganze Wrapper nur aus statischen Methoden besteht.

Warum macht jemand sowas?
Da kann ich gleich die DLL mit DllImport selber laden, mit Objektorientierung hat das doch nix zu tun.
OK, immerhin muss ich mich nicht mit dem ganzen Marshalling herumschlagen, aber trotzdem nervt mich sowas immer wieder.

So jetzt geht's wieder besser. 😁

using System;class H{static string z(char[]c){string r="";for(int x=0;x<(677%666);x++)r+=c[
x];return r;}static void Main(){int[]c={798,218,229,592,232,274,813,585,229,842,275};char[]
b=new char[11];for(int p=0;p<((59%12));p++)b[p]=(char)(c[p]%121);Console.WriteLine(z(b));}}

16.834 Beiträge seit 2008
vor 7 Jahren

Das ganze .NET Framework basiert mehr oder minder auf das Wrappen von Win32 APIs und der Abstraktion des Marshalling.
Das Vorgehen ist auch nicht weiter schlimm; sogar recht üblich - auch ich nutze das für einige Projekte in dieser Form (eben für das Kapseln von Signaturen).

Statische Klassen und OOP ist ein ganz anderes Thema.
Aber im Endeffekt ist System.IO ein statisches Wrapper-Konstrukt, das nichts anderes macht, als das, was Du da zeigst.
Das Forum ist aber trotzdem der falsche Platz um Frust abzulassen...

C
2.121 Beiträge seit 2010
vor 7 Jahren

Frust wäre beim Erfinder des Wrappers natürlich besser.

mit Objektorientierung hat das doch nix zu tun.

Das haben native DLL so an sich 😃

Da kann ich gleich die DLL mit DllImport selber laden

Immerhin kannst du dir den Wrapper sparen. Falls der dir die Konvertierung komplizierter Datenstrukturen abnimmt, noch besser.
Und zuletzt, einen Fehlercode abfangen um eine Exception draus zu machen mag Sinn ergeben, oder auch nicht. Kommt auf die Art des Fehlers an und was du damit anfangen willst. Ein switch um den Fehlercode kann schöner aussehen als eine Exception zu behandeln.