G
Guest
Hi all,
I want to be able to hirearchally define event delegate (declarations)
WITHIN interfaces.
Unfortunatelly C# 1 doesn't appear to support it.
How does the following look as a work-around? Are there better ways of
doing this?
namespace ITestInterface
{
delegate EventHandler(object Sender, string StatusInfo); // delegate
declaration
interface ClassTemplate
{
bool SampleProperty {get;}
void SampleMethod(int SomeData);
event EventHandler SampleEventHandlerList;
}
}
// Later on we could define
// a client and server that use the interface
using ITestInterface;
namespace ABC
{
class TestInterfaceServer: ITestInterface.ClassTemplate
{
public bool SampleProperty {get {return true;}}
public event EventHandler SampleEventHandlerList;
protected virtual void FireSampleEvents()
{
SampleEventHandlerList(this, "Hi there");
}
public void SampleMethod(int SomeData)
{
FireSampleEvents();
}
}
class TestInterfaceClient
{
ITestInterface.EventHandler testInterfaceEventHandler_;
TestInterfaceServer ourServer = new TestInterfaceServer();
void TestInterfaceClient()
{
testInterfaceEventHandler_ =
new ITestInterface.EventHandler(onTestInterfaceEvent);
TestInterfaceServer.SampleEventHandlerList +=
testInterfaceEventHandler_;
// Loop back test
TestInterfaceServer.SampleMethod(1); // .. should fire callback
}
onTestInterfaceEvent(object Sender, string StatusInfo)
{
// Handler for ITestInterface.EventHandler
}
}
}
I want to be able to hirearchally define event delegate (declarations)
WITHIN interfaces.
Unfortunatelly C# 1 doesn't appear to support it.
How does the following look as a work-around? Are there better ways of
doing this?
namespace ITestInterface
{
delegate EventHandler(object Sender, string StatusInfo); // delegate
declaration
interface ClassTemplate
{
bool SampleProperty {get;}
void SampleMethod(int SomeData);
event EventHandler SampleEventHandlerList;
}
}
// Later on we could define
// a client and server that use the interface
using ITestInterface;
namespace ABC
{
class TestInterfaceServer: ITestInterface.ClassTemplate
{
public bool SampleProperty {get {return true;}}
public event EventHandler SampleEventHandlerList;
protected virtual void FireSampleEvents()
{
SampleEventHandlerList(this, "Hi there");
}
public void SampleMethod(int SomeData)
{
FireSampleEvents();
}
}
class TestInterfaceClient
{
ITestInterface.EventHandler testInterfaceEventHandler_;
TestInterfaceServer ourServer = new TestInterfaceServer();
void TestInterfaceClient()
{
testInterfaceEventHandler_ =
new ITestInterface.EventHandler(onTestInterfaceEvent);
TestInterfaceServer.SampleEventHandlerList +=
testInterfaceEventHandler_;
// Loop back test
TestInterfaceServer.SampleMethod(1); // .. should fire callback
}
onTestInterfaceEvent(object Sender, string StatusInfo)
{
// Handler for ITestInterface.EventHandler
}
}
}