Im le développement d'un objet COM en C#, VS 2010, .Net 3.5, x86COM Object - tableau comme objet au lieu de type
Je l'habitude d'avoir un tableau de struct dans l'objet COM, qui en VBA est apparu bien avec tous les champs et tout.
Je suis passé en classe car cela a créé des problèmes. Maintenant, comment je ne peux pas accéder aux propriétés dans le tableau, puisque les éléments dans le tableau apparaissent comme un objet au lieu de type.
[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; }
}
Dans le débogueur je vois en regardant le terrain:
Container.Contacts() -> (0 à 4) comme objet
au lieu de
Container.Contacts() -> (0 à 4) Comme Contact
Que manque-t-il? Merci!
Thats une des mises en garde lorsque vous travaillez avec COM, vous ne pas voir machin * à l'intérieur *. Btw .: pourquoi cette question est-elle étiquetée C#? – HimBromBeere
L'objet com est écrit en C# Mais j'ai vu ce qui était à l'intérieur quand c'était un struct, et je n'ai aucun problème avec les autres classes – PonWer
Je pense que même dans VBA vous pouvez utiliser typeof pour tester le type d'objet. Cela pourrait valoir le coup. – bilpor