Laden...

Forenbeiträge von Net.Dev Ingesamt 6 Beiträge

25.01.2021 - 11:57 Uhr

Hallo Palladin007 und FZelle,

bzgl. der Typ- und Compilersicherheit kann ich euch nur zustimmen und in 2021 (auch vorher schon 😉) sollte man auf String-Übergaben, soweit möglich, verzichten.

Aber leider sind ja bekanntlicherweise die Aufgabenstellungen und Herausforderungen auf die man in der echten Welt stößt nicht immer so schön zu lösen wie es nach aktuellem Stand der Technik möglich wäre 🙁

Hier geht es mir nicht darum, einen "Umweg" in einen OR-Mapper zu bauen, sondern eine aktuelle Aufgabe zu lösen. Die Variablennamen, die als String übergeben werden sind zu 100% valide und geprüft, so dass dort kein Fehler passieren kann.

@Palladin007:

Sowas würde ich nie per String machen.
Dann lieber die Expression per Hand zusammenbauen, das ist hakelig, aber um Längen besser, als einen Parser zu verwenden, bei dem Du sämtliche Compiler-Sicherheiten verlierst.

Kannst du mir hier einen Denkanstoß geben? Output muss ein Expression<Func<object>> sein; als Input habe ich Propertyname, Alias-Instanzname und Alias-Instanztyp.

24.01.2021 - 14:12 Uhr

Hi Abt,

Danke für deine Antwort.

Genau geht es hier um NHibernate; genauer um QueryOver und Select.

Die Select-Funktion ist einmal überladen und nimmt die folgenden Parameter an:

  • Select(Expression<Func<T, object>> expression) - Es wird ein Property der eigentlichen Entität übergeben
  • Select(Expression<Func<object>> expression) - Es wird ein Property einer JOIN-Entität übergeben

Um das dynamischer zu gestalten bin ich hier gerade dran, die Expression als String übergeben zu können. Die erste Überladung (mit T) funktioniert ohne Probleme und es wird die korrekte Expression erstellt.

Wenn hier jetzt auf eine Entität in einem JOIN verwiesen wird, wird diese mit

 JoinEntity joinAlias = null; queryOver.JoinAlias(..., () => joinAlias);

"registriert". Danach kann mit Select(() => joinAlias.Id) auf Properties darin verwiesen werden. Und hier würde ich den Parameter gerne dynamisch aus einem String generieren lassen.

24.01.2021 - 11:03 Uhr

Hallo =)

Es geht darum, dass ein

Expression<Func<object>>

aus einem String ("() => obj.Id") erstellt werden soll.

Zur Verfügung im Projekt steht "System.Linq.Dynamic.Core".

Für

Expression<Func<T, object>>

funktioniert es ohne Probleme. Nur tut sich "Dynamic Linq" anscheinend schwer, wenn kein "T" übergeben wird.

Daher meine Frage, ob sich jemand mit "Dynamic Linq" auskennt und mir sagen kann, ob das so überhaupt möglich ist.

09.10.2020 - 16:11 Uhr

Super. Vielen Dank.

Ich komme eigentlich nicht aus der Welt der Web-Entwicklung (sondern von WPF) und merke, dass da einiges anders läuft und oft andere Ansätze gebraucht werden.

Dann werde ich mal die Suchergebnisse zu SignalR durcharbeiten und schauen was ich machen kann.

Vielen Dank nochmal 🙂

09.10.2020 - 15:57 Uhr

Hallo Abt,

vielen Dank für deine schnelle Antwort 👍

WebForms ist vorgegeben und ich muss mich in diesem Rahmen bewegen.
Würde hier SignalR funktionieren bzw. performant sein oder gibt es hier, wegen des Alters, etwas besonderes zu beachten?

09.10.2020 - 15:43 Uhr

Hi,

ich habe gerade ein kleines Problem.

Auf einer aspx-Seite erstelle ich beim Button-Click eine Instanz einer Klasse und speichere diese in der Session ab.
Daraufhin erfolgt ein PageLoad und ich lese die gespeicherte Instanz aus der Session aus und weise diese einer Variablen zu.

Bis hier hin alles soweit ok und es läuft.

In der Instanz wird ein Event zur Verfügung gestellt, welches ich hier im PageLoad dann abonniere. Das Event wird von außerhalb aus einer DLL, gesteuert und soll beim Ausführen ein JavaScript-Alert angezeigen.
Dies passiert jedoch nicht, so als ob das Event nicht aufgerufen wird.

Jetzt meine Frage: Ist das so überhaupt möglich, das Event zu abonnieren oder sollte/muss ein anderer Weg gewählt werden?

Vielen Dank für eure Hilfe