Hallo,
Ich habe folgendes Problem:
IDE: MS Visual Studio 2005 Beta
Ich habe ein VB.NET Projekt bekommen und ich brauche bestimmte Methoden aus diesem Projekt in meinem C# Projekt.( in C# das Ganze neu zu programmieren wäre zuviel Aufwand)
Kann ich von C# diverse Methoden aus dem VB.NET Projekt aufrufen/verwenden?
Müsste doch aufgrund des .NET Frameworks funktionieren,oder?
mfg deathhero
Überhaupt kein Problem. Du kannst in einer Anwendung beliebige viele .NET-Sprache mischen, aber es gibt eine Beschränkung:
Ein Assembly ( in Studio entspricht das einem Projekt) muss komplett in einer Sprache geschrieben sein.
Du kannst also die Hauptanwendung (.exe) in C# schreiben und dabei auf ein VB.NET Assembly (.dll) zugreifen.
Im schlimmsten Falle musst du also deinen Code umstrukturieren um die Beschränkung zu umgehen.
Original von svenson
Überhaupt kein Problem. Du kannst in einer Anwendung beliebige viele .NET-Sprache mischen, aber es gibt eine Beschränkung:Ein Assembly ( in Studio entspricht das einem Projekt) muss komplett in einer Sprache geschrieben sein.
Du kannst also die Hauptanwendung (.exe) in C# schreiben und dabei auf ein VB.NET Assembly (.dll) zugreifen.
Im schlimmsten Falle musst du also deinen Code umstrukturieren um die Beschränkung zu umgehen.
Sollte das in .Net 2.0 nicht geändert werden?
Du musst einfach die VB.NET-Assembly (wahrscheinlich ist es ja eine DLL) als Referenz deinem C#-Projekt hinzufügen.
Dann kannst du auf die Inhalte (natürlich nur auf die öffentliche Schnittstelle) der VB.Net-Assembly genau so zugreifen, als ob diese direkt in deinem Projekt vorhanden wären.
Windows Server Advanced Power Management
Erweitertes Energie-Management unter Windows
Denkbar, sehe aber das Problem, dass die jeweiligen Sprachen ja ein paar Features haben, die nicht CLS-compliant sind. Und nur die CLS-compliance stellt sicher, dass die Sprachen überhaupt interoperabel sind. Auf der anderen Seiten können auch Module (innerhalb von Assemblies) einzeln als CLS-compliant markiert werden, so dass das Mixing doch möglich sein müßte.
Ich habs mal spaßeshalber ausprobiert, aber es gab schon direkt Probleme mit dem Namespace. Der Namespace in der VB.NET Assembly liess sich nicht 1:1 in die aufrufende C# Assembly übernehmen mittels using.
Kann sein, dass ich irgendwas vergessen habe, aber ganz so einfach wie manche behaupten gehts jedenfalls nicht...
"It is not wise to be wise" - Sun Tzu
vielen dank für eure antworten.
also ich werde einmal versuchen meinen vb code in eine dll zu packen und diese dann als referenz meinem c# projekt hinzufügen.
bin gespannt ob das funktioniert 😁
danke jedenfalls 👍
Natürlich geht es einfach, aber du musst natürlich auch die DLL als referenz einfügen.
Ich habe in meinen Projekten teilweise 30 DLL's die alle in den verschiedenen
.NET Sprachen geschrieben sind, und das ist alles problemlos untereinander
austauschbar.
Das ist ja gerade eine der stärken des Systems.
Original von FZelle
Natürlich geht es einfach, aber du musst natürlich auch die DLL als referenz einfügen.Ich habe in meinen Projekten teilweise 30 DLL's die alle in den verschiedenen
.NET Sprachen geschrieben sind, und das ist alles problemlos untereinander
austauschbar.Das ist ja gerade eine der stärken des Systems.
Solang sie CLS kompatibel sind 🙂 Es können nämlich nicht alle Sprachen alles ausm .Net Framework.
Baka wa shinanakya naoranai.
Mein XING Profil.
Das ist aber immer nur eine Akademische ausrede, es nicht zu probieren.
99,99999999 % aller sachen funktionieren.