Documentation for Ice 3.5. The latest release is Ice 3.7. Refer to the space directory for other releases.

The slice2cs compiler supports metadata directives that allow you to inject C# attribute specifications into the generated code. The metadata directive is cs:attribute:. For example:

Slice
["cs:attribute:System.Serializable"]
struct Point {
    double x;
    double y;
};

This results in the following code being generated for S:

C#
[System.Serializable]
public partial struct Point
{
    public double x;
    public double y;
    // ...
}

You can apply this metadata directive to any Slice construct, such as structure, operation, or parameter definitions.

You can use this directive also at global level. For example:

Slice
[["cs:attribute:assembly: AssemblyDescription(\"My assembly\")"]]

This results in the following code being inserted after any using directives and before any definitions:

C#
[assembly: AssemblyDescription("My assembly")]
See Also
  • No labels