> For the complete documentation index, see [llms.txt](https://postica.gitbook.io/binding-system-2/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://postica.gitbook.io/binding-system-2/product/extending-the-system.md).

# Extending the System

Binding System can be easily extended with new converters, modifiers and value providers. When creating new types of these components, the system will automatically register them.

To disable auto-registration of a type, add `[HideMember]` attribute to its class definition.

<details>

<summary>Bind Class</summary>

Bind\<T> is a family of classes which allows to easily add binding capability to your script. This approach to binding requires coding and access to script's source code.

</details>

<details>

<summary>Converters</summary>

Converters are used to convert one type to another type, sometimes with additional parameters. For example, a value can be converted to a string using a given format.

</details>

<details>

<summary>Modifiers</summary>

Modifiers allow you to change the values before they are set or retrieved by requesters. The modifiers can be quite powerful since they are part of data retrieval pipeline. The only limit for modifiers is that they <mark style="color:red;">**must not change**</mark> a value type, the input and output should have the same type or have common inheritance.

</details>

<details>

<summary>Accessor Providers</summary>

Accessor providers are reserved for more experienced developers but offer greater flexibility when extending the system. They provide a way to supply custom values and paths for bindings.

</details>
