# AddAndRemoveRequest

> Represents an asynchronous request to add package dependencies to the project and/or remove package dependencies from the project.

## Definition

* **Type:** Class
* **Namespace:** [UnityEditor.PackageManager.Requests](/engine/6000.0/script-reference/unityeditor/packagemanager/requests.md)
* **Assembly:** UnityEditor
* **Inherits from:** [Request\<PackageCollection>](/engine/6000.0/script-reference/unityeditor/packagemanager/requests/request1.md)
* **Implements:** [ISerializationCallbackReceiver](/engine/6000.0/script-reference/unityengine/iserializationcallbackreceiver.md)

```csharp
public sealed class AddAndRemoveRequest : Request<PackageCollection>, ISerializationCallbackReceiver
```

## Remarks

The PackageManager [Client](/engine/6000.0/script-reference/unityeditor/packagemanager/client.md) class returns an AddAndRemoveRequest instance when you call the [Client.AddAndRemove](/engine/6000.0/script-reference/unityeditor/packagemanager/client/addandremove.md) method to add package dependencies to the project and/or remove package dependencies from the project.  Use this object to determine when the request is complete and to access the result.

Once the request is complete, you can retrieve the [PackageCollection](/engine/6000.0/script-reference/unityeditor/packagemanager/packagecollection.md) instance from the Result property.

## Inheritance

**Inherited Members:**

* [Request\<PackageCollection>.Result()](/engine/6000.0/script-reference/unityeditor/packagemanager/requests/request1/result.md)
* [Request.Status()](/engine/6000.0/script-reference/unityeditor/packagemanager/requests/request/status.md)
* [Request.IsCompleted()](/engine/6000.0/script-reference/unityeditor/packagemanager/requests/request/iscompleted.md)
* [Request.Error()](/engine/6000.0/script-reference/unityeditor/packagemanager/requests/request/error.md)
