# IDataService

### Members

***

### Methods

* **`LoadList<T>(string key)`**
  * **Description:** Loads a list of assets of type `T` associated with the specified key.
  * **Type Parameters:**
    * `T`: The type of assets to load.
  * **Parameters:**
    * `key`: The key associated with the assets to load.
  * **Returns:** A task representing the asynchronous operation. The task result contains a list of loaded assets of type `T`.
* **`LoadAssetAsync<T>(string key)`**
  * **Description:** Loads a single asset of type `T` associated with the specified key.
  * **Type Parameters:**
    * `T`: The type of the asset to load.
  * **Parameters:**
    * `key`: The key associated with the asset to load.
  * **Returns:** A task representing the asynchronous operation. The task result contains the loaded asset of type `T`.
* **`LoadAndInstantiateAsync<T>(string key)`**
  * **Description:** Asynchronously loads an asset by key, instantiates it, and retrieves a component of type `T` from the instantiated GameObject.
  * **Type Parameters:**
    * `T`: The type of the component to retrieve from the instantiated asset.
  * **Parameters:**
    * `key`: The key of the asset to load and instantiate.
  * **Returns:** A task representing the asynchronous operation. The task result contains the component of type `T` from the instantiated asset. Returns `null` if the asset fails to load, instantiate, or does not contain the component.

***
