nicht eindeutige Namesbereiche ....

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von jan99.

    nicht eindeutige Namesbereiche ....

    Moin!

    jetzt habe ich mich an eine etwas schwierigere Sache getraut. Zur Info - ich programmiere im Umfeld von Autodesk (AutoCAD Map).

    Zunächst sieht eine Funktion so aus:

    VB.NET-Quellcode

    1. Imports System
    2. Imports Autodesk.Map.IM.Data
    3. Imports Autodesk.Map.IM.Forms
    4. Imports Microsoft.VisualBasic
    5. Imports System.Drawing
    6. Imports System.Windows.Forms
    7. ...
    8. Public Sub CreateSohleByOK()
    9. Dim Report As New EBL.Service.TryCatchReport
    10. ...
    11. Try
    12. 'hier steht die Aufgabe
    13. ...
    14. Catch ex As Exception
    15. Report.Show("unerwarteter Fehler in EBL.Import.SielVerm > VermSielPunktImport", ex.ToString)
    16. End Try
    17. End Sub


    Nun geht es darum das ich die Befehle auch aus der Befehlszeile von AutoCAD aufrufen möchte. Dafür sind zusätzliche Verweise erforderlcich (gemacht!) und dann sind zwei Punkte zu importieren.

    Mit dem Hinzufügen von

    VB.NET-Quellcode

    1. Imports Autodesk.AutoCAD.Runtime


    wird das Exception in dem Catch-Teil angemerkt mit der Bemerkung:

    Fehler 8 "Exception" ist nicht eindeutig. Importiert aus den Namespaces oder Typen "Autodesk.AutoCAD.Runtime, System". X:\VB_NET_2015\Projects\tappenbeckja\EBL.Bearbeiten.Siel\EBL.Bearbeiten.Siel\cls_BearbeitenSiel_CreateSohleByOK.vb 130 21 EBL.Bearbeiten.Siel


    Kann mir einer sagen wie ich das Lösen kann? So kann ich das Ganze nicht starten!

    Gruß Jan

    jan99 schrieb:

    wie ich das Lösen kann?
    Da gibt es 2 Möglichkeiten.
    1. Du importierst den Namespace nicht, sondern schreibst ihn vor jedes "bedürftige" Item (hier: Autodesk.AutoCAD.Runtime)
      oder
    2. Du benennst den Namespace beim importieren um und verwendest den umbenannten (hier: Runtime ):

      VB.NET-Quellcode

      1. Imports Runtime = Autodesk.AutoCAD.Runtime

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Moin !

    erst einmal vielen Dank. Die Anmerkung ist jetzt weg. Auch wenn wohl kaum einer von Euch mit AutoCAD zu tun hat poste ich einmal die Fehlermeldung die nun kommt:

    Es wird nun ein Fenster eingeblendet mit folgender Meldung:

    Ausnahmefehler in einer Komponente der Anwendung. Wenn Sie auf "Weiter" klicken, ignoriert die Anwendung den Fehler und setzt den Vorgang fort.

    Für dieses Objekt wurde kein parameterloser Konstruktor definiert.

    Die Anwendung unterstützt kein JIT-Debuggen.
    Weitere Informationen finden Sie am Ende dieser Meldung.

    ************** Ausnahmetext **************
    System.MissingMethodException: Für dieses Objekt wurde kein parameterloser Konstruktor definiert.
    bei System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
    bei System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
    bei System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
    bei System.Activator.CreateInstance(Type type, Boolean nonPublic)
    bei System.Activator.CreateInstance(Type type)
    bei Autodesk.AutoCAD.Runtime.PerDocumentCommandClass.Invoke(MethodInfo mi, Boolean bLispFunction)
    bei Autodesk.AutoCAD.Runtime.CommandClass.CommandThunk.Invoke()

    ************** Geladene Assemblys **************
    mscorlib
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.34209 built by: FX452RTMGDR.
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll.
    ----------------------------------------
    ...
    AcCalcUi.resources
    Assembly-Version: 20.0.0.0.
    Win32-Version: 20.0.51.0.0.
    CodeBase: file:///C:/Program Files/Autodesk/AutoCAD 2015/de-DE/AcCalcUi.resources.DLL.
    ----------------------------------------
    System.Windows.Forms.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.34209 built by: FX452RTMGDR.
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
    ----------------------------------------

    ************** JIT-Debuggen **************
    Die Anwendung unterstützt kein JIT-Debuggen für Windows Forms.
    Weitere Informationen erhalten Sie vom Autor
    der Anwendung.


    Kann mir einer bei dieser Meldung weiterhelfen ...?

    Ich verstehe nur Bahnhof.....!

    Gruß Jan

    jan99 schrieb:

    Für dieses Objekt wurde kein parameterloser Konstruktor definiert.
    Irgendwo steht

    VB.NET-Quellcode

    1. xxx = New XXX()
    2. ' und er will haben
    3. xxx = New XXX(IRGENDETWAS)
    muste mal aufklären.
    Wahrscheinlich will die IDE eine GUI aufbauen, wozu sie gern einen parameterlosen Konstruktor verwendet.
    In welcher Codezeile kommt diese Exception?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!