Im ein COM-Objekt in C# entwickelt, VS 2010, .NET 3.5, x86COM Object - Array als Objekt statt Typ
verwenden ich ein Array von Strukturen in dem COM-Objekt zu haben, die in VBA auftauchten gut mit allen Feldern und allem.
Ich wechselte in die Klasse seit es einige Probleme erstellt. Nun kann ich jedoch nicht auf die Eigenschaften im Array zugreifen, da die Elemente im Array als Objekt statt als Typ angezeigt werden.
[Guid("8b65079f-5d98-41e7-9579-1ee384948e4c")]
[ComVisible(true)]
public interface IContact
{
string Test1 { get; set; }
string[] Array1 { get; set; }
}
[Guid("8b65089f-5d98-41e7-9579-1ee384948e4c")]
[ComVisible(true)]
[ClassInterface(ClassInterfaceType.AutoDual)]
public class Contact : IContact //Used To Be a struct
{
//[MarshalAs(UnmanagedType.BStr)]
public string Test1 { get; set; }
public string[] Array1 { get; set; }
}
public class InContainer
{
public Contact[] Contacts { get;set;}
public string[] strings { get; set; }
}
Im Debugger ich sehe, wenn das Feld sehen:
Container.Contacts() -> (0 bis 4) As Object
statt
Container.Contacts() -> (0 bis 4) Wie Kontakt
Was fehlt mir? Vielen Dank!
Das ist eine der Einschränkungen, wenn sie mit COM arbeiten, eröffnen Sie bitte was noch sehen * innen *. Btw .: Warum ist diese Frage mit C# markiert? – HimBromBeere
Das com-Objekt ist in C geschrieben # Aber ich sah, was drin war, wenn es eine Struktur war, und ich habe kein Problem mit anderen Klassen – PonWer
Ich denke, sogar in VBA können Sie typeof verwenden, um den Objekttyp zu testen. Könnte einen Versuch wert sein. – bilpor