C-Sharp Mapping for Local Interfaces
On this page:
Mapped C# Class
A Slice local interface is mapped to a C# interface with the same name, for example:
Slice
module Ice
{
local interface Communicator
{
...
}
}
is mapped to the C# interface Communicator:
C#
namespace Ice
{
public partial interface Communicator
{
...
}
}
The delegate metadata allows you to map a local interface with a single operation to a C# delegate. For example:
Slice
module Ice
{
["delegate"] local interface ValueFactory
{
Value create(string type);
}
}
is mapped to:
C#
namespace Ice
{
public delegate Value ValueFactory(string type);
}
LocalObject in C#
All Slice local interfaces implicitly derive from LocalObject, which is mapped to System.Object in C#.
Mapping for Local Interface Inheritance in C#
Inheritance of local Slice interfaces is mapped to interface inheritance in C#. For example:
Slice
module M
{
local interface A {}
local interface B extends A {}
local interface C extends A {}
local interface D extends B, C {}
}
is mapped to:
C#
namespace M
{
public partial interface A {}
public partial interface B : A {}
public interface C : A {}
public interface D : B, C {}
}