我有一個包含C#UI,C++/CLI混合模式interop包裝和一些本地C++項目的系統。C++/cli中的觀察者模式混合託管/非託管
我需要做的是建立一個系統,以便原生C++代碼可以發送日誌消息,並且UI可以報告它。
我使用this作爲模板設置了本機IObservable,但是C#代碼不能成爲觀察者。我的想法是在C++/CLI中設置另一個觀察者模式,它觀察本地觀察者,並讓C#實現它。我用this作爲模板,但我努力將其轉換爲有效的C++/CLI。
ref class Observable
{
public:
Observable(void);
virtual ~Observable(void);
event System::EventHandler^ SomethingHappened;
void DoSomething() {
System::EventHandler^ handler = SomethingHappened;
//if (handler != nullptr)
//{
handler(this, System::EventArgs::Empty);
//}//null check not permitted in C++/CLI
};
給出錯誤:C3918:require SomethingHappened to be a data member。 This is the MSDN page - 但我無法確定我做錯了什麼。
有什麼建議嗎?
感謝, 梅拉妮
我發現的作品的解釋:-)我明白這一點。 – Melanie