# WireBox

CBWIRE includes WireBox for pulling any dependencies you may need to use in your components, such as service objects, settings, and more.

## getInstance()

You can pull in dependencies to your component using **getInstance()**.

```html
<cfscript>
    function log() {
        var storage = getInstance( "cbfs:disks:temp" );
        storage.create( "log.txt", "CBWIRE rocks!" );
    }
</cfscript>

<cfoutput>
    <div>
        <!--- HTML goes here --->
    </div>
</cfoutput>
```

## Property Injection

You can also pull in dependencies using property injection.

```html
<cfscript>
    property name="storage" inject="cbfs:disks:temp";

    function log() {
        storage.create( "log.txt", "CBWIRE rocks!" );
    }
</cfscript>

<cfoutput>
    <div>
        <!--- HTML goes here --->
    </div>
</cfoutput>
```

## onDIComplete

If you want to act immediately after WireBox has fully constructor your component with it's dependencies, you can hook into the *onDIComplete()* method.

```html
<cfscript>
    property name="storage" inject="cbfs:disks:temp";

    function onDIComplete() {
        log.info( "CBWIRE rocks!" );
    }
</cfscript>

<cfoutput>
    <div>
        <!--- HTML goes here --->
    </div>
</cfoutput>
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cbwire.ortusbooks.com/3.x/wire-features/wirebox.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
