Eigene Tags können einfach verwendet werden:
/// <summary>
/// Hier Ein Text
/// </summary>
/// <EinEigenerTag>
/// Ein anderer Text
/// </EinEigenerTag>
public class MyClass {
//...
}
Diese Tags werden einfach von Visual Studio in die XML-Dokumentationsdatei übernommen.
Jetzt hätte ich für die eigenen Tags aber gerne IntelliSense...
powerbond007 hat es verstanden. Das mit den Tags funktioniert. Alle Tags, auch eigene, werden in die durch Visual Studio erzeugte xml-Datei kopiert und können daraus dann verwendet werden.
Ich hätte jetzt aber gerne noch IntelliSense für eigene Tags (wie z.B. <meinEigenerTag>), genauso wie es bereits für summary, remarks etc. unter VS 2005 bereits IntelliSense gibt.
Wir benötigen diese Tags für den innerbetrieblichen Dokumentationsprozess.
Vielen Dank für eure Antworten, aber leider Thema verfehlt 🙂
Ich möchte zu den bereits bestehenden Doku-Tags wie summary, remark etc. eigene Tags hinzufügen. Diese eigenen Tags sollen dann auch per IntelliSense unterstützt werden (so wie es für die bereits vorhandenen schon funktioniert.)
Hallo,
weiss jemand wie man IntelliSence für eigene Dokumentations-Tags (wie <summary> etc.) erstellen kann?
Gruß
Frank
Hallo,
weiss jemand wie die Standard-Doku-Tags (summary, remarks etc.) um eigene Tags erweitert werden können, die dann ebenso wie die bereits existierenden behandelt werden. D.h. IntelliScence steht zur Verfügung und die Tags werden ebenso in die Doku-Xml-Datei kopiert.
Vielen Dank für die Hilfe
Frank
Also, die einzigste Möglichkeit sehe ich selbst im Moment darin eine Wrapper Klasse in Verbindung mit einem explizieten benutzerdefinierten Cast zu verwenden.
public interface IInterfaceBase {
}
public interface IInterface2 : IInterfaceBase {
}
public class Class1<T> where T : IInterfaceBase {
T m_BusinessLogic;
public virtual T BusinessLogic {
get { return this.m_BusinessLogic; }
}
public class Class1Wrapper : Class1<IInterfaceBase> {
object m_ObjectToWrapp;
public override IInterfaceBase BusinessLogic {
get {
PropertyInfo oProp = this.m_ObjectToWrapp.GetType().GetProperty("BusinessLogic");
return (IInterfaceBase)oProp.GetValue(this.m_ObjectToWrapp, null);
}
}
public Class1Wrapper(object p_ObjectToWrapp) {
this.m_ObjectToWrapp = p_ObjectToWrapp;
}
}
public class Class2 : Class1<IInterfaceBase> {
}
public class Class3 : Class1<IInterface2> {
public static explicit operator Class1<IInterfaceBase>(Class3 c3) {
Class1Wrapper oWrapp = new Class1Wrapper(c3);
return oWrapp;
}
}
Dann funktioniert das einfügen in die Liste mit einem explizieten Cast.
List<Class1<IInterfaceBase>> lstClassList = new List<Class1<IInterfaceBase>>();
Class2 oClass2 = new Class2();
lstClassList.Add(oClass2);
Class3 oClass3 = new Class3();
lstClassList.Add((Class1<IInterfaceBase>)oClass3);
Hat jemand noch weitere Ideen?
Hallo,
existieren Klassen wie diese
public interface IInterfaceBase {
}
public interface IInterface2 : IInterfaceBase {
}
public class Class1<T> where T : IInterfaceBase {
public T BusinessLogic {
get { return default(T); }
}
}
public class Class2 : Class1<IInterfaceBase> {
}
public class Class3 : Class1<IInterface2> {
}
und wird dann soetwas versucht
List<Class1<IInterfaceBase>> lstClassList = new List<Class1<IInterfaceBase>>();
Class2 oClass2 = new Class2();
lstClassList.Add(oClass2);
Class3 oClass3 = new Class3();
lstClassList.Add(oClass3 as Class1<IInterfaceBase>);
kommt es zu einem Kompilerfehler, dass ein Class3-Objekt nicht in ein Class1<IInterfaceBase>-Objekt konvertiert werden kann. Weiß jemand, wie so ein Cast gemacht werden kann, oder wie ich soetwas mit einen benutzerdefinierten Cast erreichen kann?
Gruß
SlEasy
Nein, er redet davon, dass wenn ein Objekt die Schnittstelle IList implementiert, dieses nicht zwangsläufig die Schnittstelle IList<T> implementiert.
Das wäre zu kompliziert, das hier auszuführen.
Über Reflektion ist es auch nicht einfach möglich. Aufrufe wie
if(typeof(IList<>).IsAssignableFrom(oPropertyDescriptor.PropertyType.GetGenericTypeDefinition()) == true)
funktionieren zwar, aber nur, wenn oPropertyDescriptor.PropertyTypeGetGenericTypeDefinition() auch den Schnittstellen-Type IList<> zurückliefert. Sobals aber oPropertyDescriptor.PropertyTypeGetGenericTypeDefinition() nicht typeof(IList<>) sondern typeof(List<>) ist, funktioniert es nicht.
Wie kann ich überprüfen, ob ein bestimmtes Objekt die Schnittstelle IList<T> implementiert? Dabei soll egal sein, was T für ein Type ist.
Gibt es eine ähnliche Methode wie:
if(myObject is IList) { ... }
?
Danke.
Gruß
SlEasy