Benutzer mit den meisten Antworten
COM-Objekt um eine Eigenschaft erweitern

Frage
-
Hallo,
ich will ein COM-Objekt 'TestMaster' eigentlich um eine Eigenschaft 'Title' erweitern. Es gibt aber wohl nur Erweiterungsmethoden.
Wahrscheinlich benötige ich somit zwei Methoden (SetTitle und GetTitle).
Gibt es einen besseren Weg (ideal wäre eine Eigenschaft oder nur eine Methode) mit dem ich das COM-Objekt 'TestMaster' erweitern kann, um 'Title' setzen und abrufen zu können?public static class ExtensionMethods { private static string title; public static string SetTitle(this TestMaster source, string titleX) { title = titleX; } public static string GetTitle(this TestMaster source) { return title; } }
Alexander- Bearbeitet Ciprian Bogdan Mittwoch, 22. Januar 2014 08:29 Codeblock
Antworten
-
Hallo,
es gibt keine "Erweiterungseigenschaften". Auch deine Erweiterungsmethode wird nicht das machen, was du erwartest. Denn egal bei welcher instanz du Title setzt, es wird bei jedem gleich sein. Das liegt daran, das du nur ein einziges Feld für Title hast.Du müsstest wenn dann die Instanz in eine extra Klasse verschieben:
class MyTestMaster{ public TestMaster TestMaster{get;set;} public string Title{get;set;} }
Dann würde das funktionieren.Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite |
Code Beispiele |
Facebook |
Twitter |
Snippets
C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.- Als Antwort markiert AlexanderRi Mittwoch, 22. Januar 2014 09:40
Alle Antworten
-
Hallo,
es gibt keine "Erweiterungseigenschaften". Auch deine Erweiterungsmethode wird nicht das machen, was du erwartest. Denn egal bei welcher instanz du Title setzt, es wird bei jedem gleich sein. Das liegt daran, das du nur ein einziges Feld für Title hast.Du müsstest wenn dann die Instanz in eine extra Klasse verschieben:
class MyTestMaster{ public TestMaster TestMaster{get;set;} public string Title{get;set;} }
Dann würde das funktionieren.Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite |
Code Beispiele |
Facebook |
Twitter |
Snippets
C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.- Als Antwort markiert AlexanderRi Mittwoch, 22. Januar 2014 09:40
-
Hallo Alexander,
COM arbeitet etwas anders als .NET. Dort werden Methoden über Schnittstellen bereitgestellt. Eine Erweiterung bedeutet dort entweder eine (inkompatible) Änderung der Schnittstelle oder das Einführen einer weiteren.
Siehe dazu: Vererbung, Aggregation und Kapselung (und die weitere Kapitel in dem Abschnitt solltest Du anlesen).
P. S.: Erweiterungsmethoden sind ein reines C# (und VB) Compiler-Feature - COM kennt solche Konzepte nicht.
Gruß Elmar