1. Juni 2011 12:15
		
			
			Hallo,
ich habe mir eine DLL mit C# geschrieben, welche mehrer Methoden beinhalten.
Diese funktioniert auch wie gewünscht nur wenn ich im C#-Projekt eine neue Methode nicht am Ende hinzufüge kommt es zu einen Problem.
Beispiel: ich habe folgende Methoden in der Reihenfolge A B und C. Danach habe ich in Navision dies in eine Form eingebunden und die Methoden verwenden (NAVVar.A usw).
Wenn ich nun im C#-Projekt eine Methode D vor C einfüge und diese kompilierte DLL wieder registriere wird in Navision aus NAVVar.C plötzlich NAVVar.D.
Wo liegt hier das Problem.
lg
stony
			
		
	 
	
        
        1. Juni 2011 14:04
		
			
			das hängt mit der DispId im c# Projekt zusammen. Definierst Du pro funktion manuell fix eine DispId? Automatische Nummerierung führt zu Deinem Fehler.
Bsp:
- Code:
   [Guid ("1533D027-C22A-585E-058E-56A218149D23")]
  [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)]
  public interface TimerEvents
  {
    [DispId (0x60020000)]
    void Elapsed();
  }
  [ComVisible(true)]
  public interface ICOMTimer
  {
    double Interval {get; set;}
    void Start ();
  }
			
		 
	 
	
        
        1. Juni 2011 14:07
		
			
			Nein mache ich nicht. Besten Dank für die Info.
Wo kann ich das nachlesen bzw. ein Beispiel dazu finden.
			
		
	 
	
        
        1. Juni 2011 14:19
		
			
			Heißt das ich in jeder Methode einfach diese Dispid definiere bzw. kann ich dies mit 1,2 usw. fortlaufend durchnumerieren.
z.B.:
- Code:
 public bool Werteholen()
{
[DispId(1)]
....
}
public bool Werteschreiben()
{
[DispId(2)]
....
}