C #: Wie kann ich feststellen, ob ein Objekt einer benutzerdefinierten Klasse oder einem nativen Typ / .NET-Klasse angehört?

8

Ich habe diese Klasse

%Vor%

Ich bemerkte, wenn ich es an eine ASP.NET GridView bind, es automatisch Thing auslässt, und aus einem guten Grund (dh, weil sonst wird es nur die bedeutungslose "MyNamespace.MyClass" in allen Zeilen)

Ich versuche, eine ähnliche Sache in dieser Methode zu machen.

%Vor%     
Aximili 14.02.2013, 03:24
quelle

3 Antworten

11

Ich bin mir nicht sicher über die Leistung, aber Sie könnten etwas in der Art von

verwenden %Vor%

Oder filtern Sie vor dem Schleifen

%Vor%

Bearbeiten: Die oben genannte Methode hat nach einem kurzen Test einige Fehler. Wenn Ihr Objekt Nullable ist (MyViewModel?), wird es bei diesem Test ( System.Nullable<MyViewModel> ) erkannt.

Also könnten Sie vielleicht verwenden:

%Vor%

Eine weitere Änderung: Es scheint auch ein Problem mit der letzten Methode zu geben. Aber diese unten ist bei weitem die schnellste und zuverlässigste. Wir erstellen einfach eine Liste der System.Objects aus der Assembly und prüfen, ob sich Ihr Objekt in dieser Liste befindet.

%Vor%     
sa_ddam213 14.02.2013, 03:28
quelle
0

Sie müssten es in einer vordefinierten Hash-Tabelle oder einem Wörterbuch suchen ... sagen Sie, indem Sie alle Assemblys auflisten, die Teil des .NET Framework SDK sind, und den vollständig qualifizierten Namen in einem Wörterbuch speichern.

    
Richard Hein 14.02.2013 03:29
quelle
0

Ich weiß, das ist alt, aber ich glaube, du suchst nach Methode.

%Vor%     
Bob Babb 11.05.2016 19:33
quelle

Tags und Links