h5

Attribute Reference

h5 provides a rich set of attributes to control compilation, interoperability, and output generation.

Compilation Control

[FileName]

Specifies the output file name for a class or assembly.

[FileName("my-file.js")]
public class MyClass { }

[Module]

Defines the module system or module name for a class or assembly.

[Module(ModuleType.CommonJS)]
public class MyModule { }

[Module("react")]
public class ReactInterop { }

[Reflectable]

Controls reflection metadata generation.

[Reflectable(false)]
public class NonReflectable { }

[NonScriptable]

Excludes a member from being emitted to JavaScript.

[NonScriptable]
public void HelperMethod() { }

Initialization

[Ready]

Marks a method to run when the DOM is ready.

[Ready]
public static void OnReady() { }

[Init]

Marks a method to run immediately upon script loading.

[Init]
public static void Initialize() { }

Interoperability

[External]

Marks a class or member as existing externally (no implementation generated).

[External]
public class ExistingJsLibrary { }

[Template]

Defines a custom JavaScript template for a method call.

[Template("console.log({0})")]
public static extern void Log(object message);

[Script]

Injects raw JavaScript into the method body.

[Script("alert('Hello');")]
public void Alert() { }

[GlobalTarget]

Compiles the class members as global functions/variables.

[GlobalTarget("window")]
public static class WindowExtensions { }

[ObjectLiteral]

Compiles the class as a plain JavaScript object literal.

[ObjectLiteral]
public class Options { public int Id { get; set; } }

[Enum]

Controls how enums are emitted (as numbers or strings).

[Enum(Emit.StringName)]
public enum Color { Red, Green }

Naming & Structure

[Name]

Overrides the name of a class, method, property, or field in the generated JavaScript.

[Name("myCustomName")]
public void MyMethod() { }

[Namespace]

Overrides the namespace or disables namespace generation.

[Namespace("My.Custom.Namespace")]
public class MyClass { }

[Namespace(false)] // No namespace prefix
public class GlobalClass { }

[Convention]

Applies naming conventions (e.g., camelCase) to members.

[Convention(Notation.CamelCase)]
public class MyClass { }

Type System

[Cast]

Customizes the implementation of a cast operation.

[Cast("Number({0})")]
public static extern int ToInt(object value);

[IgnoreCast]

Disables runtime type checks and conversions for a cast.

[IgnoreCast]
public T As<T>() { return (T)(object)this; }

Referenced by

© 2026 h5. All rights reserved.