Je deviens fou sur ce problème au cours des deux dernières semaines. J'ai un objet C# Com qui doit envoyer des notifications de modification de propriété à un objet Com C++. Un équivalent dans VB utiliserait le code qui ressemble à ceci: PropertyChanged "propertyName".Comment tirer la propriété a modifié les notifications de C# à COM en utilisant IPropertyNotifySink?
En C++, l'équivalent d'utiliser la classe CFirePropNotifyEvent d'ATL. Les objets COM C++ COM et VB COM n'implémentent pas d'interface d'événements spécialisée, donc les équivalents sont donnés ci-dessus. L'objet COM C++ devant contenir l'événement est basé sur IPropertyNotifySink, afaik.
Quel est l'équivalent en C#? i ont essayé:
- INotifyPropertyChanged de System.ComponentModel
- Je IObjectWithSite et mis en œuvre essayé de jeter l'objet site a reçu en SetSite à IPropertyNotifySink.
- Je ne peux pas trouver un équivalent pour CFirePropNotifyEvent en C++/ATL qui est ce que le code C++ utilise ..
S'il vous plaît aider ..
Merci à l'avance ..
hmm .. bon point .. j'ai eu un (infructueux) aller à la mise en œuvre que .. y at-il de l'aide disponible (génériques impl/échantillon ??) – user543923
Il est difficile à trouver. Si vous voulez vraiment aller dans cette voie, je suggère de plonger dans Reflector et de regarder autour de l'interface, également autour de la classe AxHost qui est le wrapper CLR pour les objets AciveX. Ce n'est pas documenté, mais Reflector peut en dire beaucoup à ce sujet. Sinon, vous pouvez conseiller votre propre mécanisme «événementiel» en utilisant un délégué, des rappels, etc. Si c'est possible dans votre contexte, c'est beaucoup plus simple. –