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

  • »
  • Community
  • |
  • Diskussionsforum
VB.NET Methoden in C# aufrufen
deathhero
myCSharp.de - Member



Dabei seit:
Beiträge: 12

Themenstarter:

VB.NET Methoden in C# aufrufen

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
svenson
myCSharp.de - Member



Dabei seit:
Beiträge: 8775
Herkunft: Berlin

beantworten | zitieren | melden

Ü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.
private Nachricht | Beiträge des Benutzers
Quallo
myCSharp.de - Member



Dabei seit:
Beiträge: 994
Herkunft: Nähe Bremen

beantworten | zitieren | melden

Zitat
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?
private Nachricht | Beiträge des Benutzers
DecaTec
myCSharp.de - Member

Avatar #avatar-3493.png


Dabei seit:
Beiträge: 212

beantworten | zitieren | melden

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.
Blog

Portable WebDAV Library

Windows Server Advanced Power Management
Erweitertes Energie-Management unter Windows
private Nachricht | Beiträge des Benutzers
svenson
myCSharp.de - Member



Dabei seit:
Beiträge: 8775
Herkunft: Berlin

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Lynix
myCSharp.de - Member



Dabei seit:
Beiträge: 670
Herkunft: Saarland

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
deathhero
myCSharp.de - Member



Dabei seit:
Beiträge: 12

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10083

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
talla
myCSharp.de - Experte

Avatar #avatar-3214.jpg


Dabei seit:
Beiträge: 7290
Herkunft: Esslingen

beantworten | zitieren | melden

Zitat
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.
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10083

beantworten | zitieren | melden

Das ist aber immer nur eine Akademische ausrede, es nicht zu probieren.

99,99999999 % aller sachen funktionieren.
private Nachricht | Beiträge des Benutzers