Autor Beitrag
winx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 249



BeitragVerfasst: Fr 07.10.05 10:41 
Hi,

da ich mich jetzt ein bißchen in Delphi.Net einlernen will, möchte ich erstmals verschieden Dinge versuchen. Dabei stoße ich schon an das erste Problem:

Wie kann ich folgende C# Klasse in mein Delphi.Net Projekt einbinden, damit ich normal damit arbeiten kann, oder geht das nicht?

Klasse:


ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
using System;
using System.Collections.Generic;
using System.Text;

namespace WindowsPersonApplication
{
class Person

private string vorname;
private string nachname;

public Person()
{
vorname = "andreas";
nachname = "betz";
}

public string NameToString()
{

return vorname + " " + nachname;

}


}
}
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 07.10.05 11:15 
Hallo!

In Form von Quellcode kannst Du die Klasse nicht in einem Delphi .NET - Projekt verwenden. Du kannst jedoch Assemblies, welche in C# erstellt wurden, problemlos in einem D.NET-Projekt verwenden, indem Du sie wie jedes andere Assembly einbindest.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
winx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 249



BeitragVerfasst: Fr 07.10.05 11:52 
Hallo,

hab mal ein Beispiel im Netz gefunden, bei dem es funktioniert (Assembly erstellen und einbinden
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
namespace People

    public class Person 
    {    
        string name; 

        public string Name 
        { 
            get { return name; } 
            set { name = value; } 
        } 

        public Person(string someProperty) 
        { 
            this.name = someProperty; 
        } 
        
        public Person()
        {
           this.name = "Peter";
        }
    } 
}


bei meinem eigenen hat es jedoch nicht funktioniert:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
namespace AllPeople.Persons
{
    public class Person
    {        
            private string vorname;
            private string nachname;


            public Person()
            {
                vorname = "andi";
                nachname = "betzerle";
            }


            public string NameToString()
            {

                return vorname + " " + nachname;

            }

                
    }
}



Wie kann ich, außer über die Konsole, ein Assembly aus einer C#-Klasse (mit VS.net oder delphi.net) erstellen???

Danke
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 07.10.05 11:55 
Hallo!

Was genau heisst denn "nicht funktioniert"?

Um ein Assembly mit dieser Klasse drin zu erstellen, erstellst Du einfach eine C#-Klassenbibliothek, packst die Datei mit der Klasse rein und kompilierst das. Schon hast Du Dein Assembly :-)

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
winx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 249



BeitragVerfasst: Fr 07.10.05 12:57 
- Zuerst habe ich die C# Klasse erstellt
- Danach die Klasse mit dem Befehl csc /t:library /out:n:/person.dll person.cs umgewnadelt
- Und dann als Referenz eingebunden

Das geht bei beiden Klassen, nur findet er beide der zweiten Klasse den Namespace nicht.

Kann ich das Einbinden von einzelnen Klassen oder ganzen Klassenstrukturen (namespaces) auch einfacher machen?

danke
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 07.10.05 16:59 
Hallo!

Für die Arbeit solltest Du Dir Suche bei Google "SHARPDEVELOP" herunterladen. Da sparst Du Dir schonmal das ganze Kommandozeilen-Zeugs. ;-) Oder du hast Delphi 2005, das kann ja generell schon C#-Projekte erstellen.

Schau doch mal mit einem Reflector-Tool (Reflection ist IIRC bei Delphi dabei) in die erstellten Assemblies, ob Du da einen Grund siehst, weshalb das nicht klappt.

Wenn es nicht klappt, zeig mal bitte, wie Du die Assemblies in Delphi einbindest.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".