2009-02-26 9 views
0

Dies ist ein C++/CLI WinForms-Projekt, das auf das .NET 2.0-Framework abzielt. Ich verwende Visual Studio 2008. Wie bekomme ich es zum Laufen?DebuggerDisplay-Attribut funktioniert nicht

EDIT: Code-Snippet

[Serializable] 
[DebuggerDisplayAttribute(L"ID={EmployeeID}")] 
public ref class Employee 
{ 
    [ReadOnly(true)] 
    int nID; 
    property int EmployeeID 
    { 
     int get() 
     { 
      return nID; 
     } 
    } 
} 
+0

Code-Schnipsel? Was scheitert? – Brian

+0

Es zeigt nicht den benutzerdefinierten Text nur die üblichen: "Mitarbeiter = 0x058482f8 {Age = 46 Tracker = 0x0584f1cc NID = 14 ...}" –

+0

Jetzt in Update2 VS2015 unterstützt. https://blogs.msdn.microsoft.com/vcblog/2016/02/12/natvis-for-ccli-available-to-preview-in-vs2015-update-2/ – Jordan

Antwort

0

Der Konsens ist, dass die C++ IDE es nicht unterstützt.

0

definieren "nicht funktioniert" ... es funktioniert mit Sicherheit in C# (ich weiß nicht, ob die C++ Editor unterstützt - nur die folgende übersetzen, die arbeitet in C#, um herauszufinden, ;-P)

using System.Diagnostics; 
[DebuggerDisplay("HiWorld={Bar}")] 
class Foo 
{ 
    public string Bar { get; set; } 
    static void Main() 
    { 
     Foo foo = new Foo { Bar = "abc" }; 
     // breakpoint and hover shows: HiWorld="abc" 
    } 
} 

ich nicht "tun" C++ nicht mehr, aber Reflektor sagt:

[DebuggerDisplay(S"HiWorld={Bar}")] 
private __gc class Foo 
{ 
    // Methods 
    private: static void __gc* Main() 
    { 
     Foo __gc* <>g__initLocal0 = __gc new Foo(); 
     <>g__initLocal0->Bar = S"abc"; 
     Foo __gc* foo = <>g__initLocal0; 
    } 


    // Properties 
    [CompilerGenerated] 
    public: __property String __gc* get_Bar() 
    { 
     return this-><Bar>k__BackingField; 
    } 
    [CompilerGenerated] 
    public: __property void __gc* set_Bar(String __gc* value) 
    { 
     this-><Bar>k__BackingField = value; 
    } 


    // Fields 
    [CompilerGenerated] 
    private: String __gc* <Bar>k__BackingField; 
}; 
+0

Soweit ich mich erinnere, reflector Reflektor IL zu etwas namens Managed C++, das kein reguläres C++/CLI ist. Habe ich recht? – abatishchev

+0

@abatishchev - sicherlich verwaltet C++ ist eine der Optionen, aber ich kann nicht kommentieren, wie dies ist/ist nicht Standard C++/CLI. –

0

Ich denke, Ihr Problem könnte sein, dass Sie breite Zeichenfolgen (L"ID={EmployeeID}") anstelle von CLR-Zeichenfolgen (S"ID={EmployeeID}") angeben. Also vielleicht das L zu einem S ändern und sehen, wie du gehst?

Verwandte Themen