Laden...
E
e86 myCSharp.de - Member
Bald-Student Leipzig Dabei seit 20.06.2004 56 Beiträge
Benutzerbeschreibung

Forenbeiträge von e86 Ingesamt 56 Beiträge

11.11.2005 - 13:44 Uhr

Hallo,

nun, soweit bin gestern nun auch gekommen, aber das Problem ist nun:

Wie greife ich bei diesem Objekt nun auf die jeweiligen Funktionen zu?

Bei dir Friedel wäre das:

baseObject.MeinFunktionsname (Parameter1, Parameter2);

Aber dann meckert das Visual Studio 2005 rum und meint, dass das "Object" keine solche Funktion besitzt. 🤔 Daran scheitere ich derzeitig, logisch funktioniert es, nur das Programm meint, dass es noch "Probleme" gibt.

kOOni

10.11.2005 - 15:12 Uhr

Es ist ein Ordner, der bestimmte Module enthält. Diese Module stellen meinem Programm Funktionen zur Verfügung.

Es ist so, dass ich diese Module erst zur Laufzeit auslesen will, da ich nicht weiß, welche Module in dem Ordner drin sind. Würde ich sie per Referenz einfügen, dann könnte ich nur die dort eingetragenen Module verwenden, was ich aber nicht will.

Wenn du es so siehst, dann sind es ein oder mehrere Plugins. =)

Also du hast eine Dll, die Du nicht zur entwurfszeit benutzen willst?

Genau.

kOOni

10.11.2005 - 09:37 Uhr

Hallo,

nein, ich möchte die DLL erst zur Laufzeit einbinden. Sie ist in C# geschrieben.

kOOni

09.11.2005 - 09:30 Uhr

Hallo,

ich möchte während der Laufzeit des Programms eine DLL einbinden, die ich selbst entworfen habe. Diese enthält Funktionen, welchen in verschiedene Klassen gekapselt sind.

Nun möchte ich wissen, wie ich diese Funktionen ausrufen kann. Wichtig ist, dass ich an diese Funktionen noch Parameter übergeben muss.

Meine Lösungsansätze sind bisher:

  • .. über:
System.Reflection.Assembly.LoadFile ("deineDLL.dll");
  • ... oder über:
[Dll Import ... ]

Bei zweiterem habe ich keine Ahnung, wie da auf die Klasse zugreifen kann, da er mir, so glaube ich, die ganze DLL einfügt.

Ich hoffe, ihr versteht so in etwa, was ich meine =)

kOOni

25.06.2004 - 14:39 Uhr

hab ich mich etwas unverständlich ausgedrückt oder sonst was, dann schreibt mir bitte. würde mich freuen, wenn sich hier noch einige äußern würden. danke nochmal.

kOOni

20.06.2004 - 17:37 Uhr

ich habe mich über das wochende mit dem remoting unter c# beschäftigt. dazu habe ich sehr viele tutorials consultiert. einige waren von codeproject.com.

bei einem habe ich dann mal ein bein in die tür bekommen, nur leider versucht mich ein kleiner bug, wieder heraus zudrengeln.

meine ausgangssituation:

3 Dateien:

Projekt: Server

  • Server.cs
  • ServerClass.cs

Projekt: Client

  • Client.cs
    -ServerClass.cs

Inhalt ServerClass.cs:

using System;

 namespace NServiceClass
 {
  public class ServiceClass : MarshalByRefObject
  {
   private string text;


   public string Text
   {
    get
    {
     return this.text;
    }
    set
    {
     this.text = value;
    }
   }

  }
 }

Inhalt Server.cs:

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;

using NServiceClass;

namespace DefaultNamespace
{
	class MainClass
	{
		public static void Main(string[] args)
		{
			HttpChannel channel = new HttpChannel(8080);
			ChannelServices.RegisterChannel(channel);
			
			ServiceClass remoteObject = new ServiceClass();
			remoteObject.Text = "Hello Remote-World!";
			
			ObjRef reference = RemotingServices.Marshal( remoteObject,
			"remoteObjectURI");
			
			Console.WriteLine ("Server laeuft...");
			
			Console.ReadLine();
			
		}
	}
}

Und die 3. Datei, Client.cs:

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;

using NServiceClass;

namespace DefaultNamespace
{
	class MainClass
	{
		public static void Main(string[] args)
		{
			HttpChannel channel = new HttpChannel(0);
			ChannelServices.RegisterChannel(channel);
			
			RemotingConfiguration.RegisterWellKnownClientType(typeof(ServiceClass),
			"http://localhost:8080/remoteObjectURI");
		
			ServiceClass remote = new ServiceClass();
			
			Console.WriteLine(remote.Text);
			
			Console.ReadLine ();
		}
	}
}

mein problem:

ich habe statt http://localhost:8080/remoteObjectURI, http://111.111.111.112:8080/remoteObjectURI geschrieben. diese 1sen und die 2 sind die ip für meinen server-rechner.

ich habe nun auf dem o.g. serverrechner das Programm Server (Server.cs) laufen.
alles bestens.

nun starte ich auf einem 2. rechner im netzwerk das Clientprogramm (Client.cs). Hier wartet er eine kurze zeit (3sek.) und bricht dann ab.

Er sagt mir, dass er nicht auf den Socket etc. zugreifen kann.

was ich will:

das er mir im client programm 'hello remote-world' ausgibt.

kOOni