Someone know how addhandlers from C# DLL to VB App. When I try to use AddHandler into my VB project, the Visual Studio returns:
Error BC30676 'DebugMessageEvent' is not an event of 'Debugger'...
If I go to the 'DebugMessageEvent' definition from VB Proj (Auto-Converted from the DLL called DLLNAMESPACE), I get the follow code:
The VB Project (Doesn't Work)Code:Public Class Debugger Public DebugMessageEvent As EventHandler(Of DebugMessageArgs) Public Shared ReadOnly Property Instance As Debugger Public Class DebugMessageArgs Inherits EventArgs Public Sub New() Public Property Message As Object End Class End Class
Another C# project (Works)Code:AddHandler Instance.DebugMessageEvent, AddressOf console_DebugMessageEvent
Code:Debugger.Instance.DebugMessageEvent += console_DebugMessageEvent;
The DLL C# Code
All the rest of DLL functions works as expected.Code:public sealed class Debugger { private static readonly Lazy<Debugger> instance = new Lazy<Debugger>(() => new Debugger()); private Debugger() { } public static Debugger Instance { get { return instance.Value; } } public EventHandler<DebugMessageArgs> DebugMessageEvent; public class DebugMessageArgs : EventArgs { public object Message { get; set; } } private void RaiseDebugMessageEvent(object message) { DebugMessageEvent?.Invoke(this, new DebugMessageArgs { Message = message }); } internal void DebugMessage(object data) { RaiseDebugMessageEvent(data); } }




Reply With Quote
