> ## Documentation Index
> Fetch the complete documentation index at: https://easyaf.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# ModelContext

> Represents context under which a model is requested.

## Definition

**Assembly:** Microsoft.Restier.Core.dll

**Namespace:** Microsoft.Restier.Core.Model

**Inheritance:** Microsoft.Restier.Core.InvocationContext

## Syntax

```csharp theme={"dark"}
Microsoft.Restier.Core.Model.ModelContext
```

## Summary

Represents context under which a model is requested.

## Constructors

### <Icon icon="hammer" iconType="duotone" color="#419AC5" size={24} className="mr-2" /> .ctor

Initializes a new instance of the [ModelContext](/restier/api-reference/Microsoft/Restier/Core/Model/ModelContext) class.

#### Syntax

```csharp theme={"dark"}
public ModelContext(Microsoft.Restier.Core.ApiBase api)
```

#### Parameters

| Name  | Type                             | Description |
| ----- | -------------------------------- | ----------- |
| `api` | `Microsoft.Restier.Core.ApiBase` | An Api.     |

### <Icon icon="hammer" iconType="duotone" color="#419AC5" size={24} className="mr-2" /> .ctor <Badge color="gray">Inherited</Badge>

<Note>Inherited from `Microsoft.Restier.Core.InvocationContext`</Note>

Initializes a new instance of the [InvocationContext](/restier/api-reference/Microsoft/Restier/Core/InvocationContext) class.

#### Syntax

```csharp theme={"dark"}
public InvocationContext(Microsoft.Restier.Core.ApiBase api)
```

#### Parameters

| Name  | Type                             | Description |
| ----- | -------------------------------- | ----------- |
| `api` | `Microsoft.Restier.Core.ApiBase` | An Api.     |

### <Icon icon="hammer" iconType="duotone" color="#419AC5" size={24} className="mr-2" /> .ctor <Badge color="gray">Inherited</Badge>

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
public Object()
```

## Properties

### <Icon icon="tag" iconType="duotone" color="#419AC5" size={24} className="mr-2" /> Api <Badge color="gray">Inherited</Badge>

<Note>Inherited from `Microsoft.Restier.Core.InvocationContext`</Note>

Gets the [ApiBase](/restier/api-reference/Microsoft/Restier/Core/ApiBase) descendant for this invocation.

#### Syntax

```csharp theme={"dark"}
public Microsoft.Restier.Core.ApiBase Api { get; }
```

#### Property Value

Type: `Microsoft.Restier.Core.ApiBase`

### <Icon icon="tag" iconType="duotone" color="#419AC5" size={24} className="mr-2" /> ResourceSetTypeMap

Gets resource set and resource type map dictionary, it will be used by publisher for model build.

#### Syntax

```csharp theme={"dark"}
public System.Collections.Generic.IDictionary<string, System.Type> ResourceSetTypeMap { get; }
```

#### Property Value

Type: `System.Collections.Generic.IDictionary<string, System.Type>`

### <Icon icon="tag" iconType="duotone" color="#419AC5" size={24} className="mr-2" /> ResourceTypeKeyPropertiesMap

Gets resource type and its key properties map dictionary, and used by publisher for model build.
This is useful when key properties does not have key attribute
or follow Web Api OData key property naming convention.
Otherwise, this collection is not needed.

#### Syntax

```csharp theme={"dark"}
public System.Collections.Generic.IDictionary<System.Type, System.Collections.Generic.ICollection<System.Reflection.PropertyInfo>> ResourceTypeKeyPropertiesMap { get; }
```

#### Property Value

Type: `System.Collections.Generic.IDictionary<System.Type, System.Collections.Generic.ICollection<System.Reflection.PropertyInfo>>`

## Methods

### <Icon icon="code-fork" iconType="duotone" color="#419AC5" size={24} className="mr-2" /> Equals <Badge color="gray">Inherited</Badge> <Badge color="orange">Virtual</Badge>

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
public virtual bool Equals(object obj)
```

#### Parameters

| Name  | Type      | Description |
| ----- | --------- | ----------- |
| `obj` | `object?` | -           |

#### Returns

Type: `bool`

### <Icon icon="thumbtack" iconType="duotone" color="#419AC5" size={24} className="mr-2" /> Equals <Badge color="gray">Inherited</Badge>

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
public static bool Equals(object objA, object objB)
```

#### Parameters

| Name   | Type      | Description |
| ------ | --------- | ----------- |
| `objA` | `object?` | -           |
| `objB` | `object?` | -           |

#### Returns

Type: `bool`

### <Icon icon="function" iconType="duotone" color="#419AC5" size={24} className="mr-2" /> GetApiService <Badge color="gray">Inherited</Badge>

<Note>Inherited from `Microsoft.Restier.Core.InvocationContext`</Note>

Gets an API service.

#### Syntax

```csharp theme={"dark"}
public T GetApiService<T>() where T : class
```

#### Returns

Type: `T`
The API service instance.

#### Type Parameters

* `T` - The API service type.

### <Icon icon="function" iconType="duotone" color="#419AC5" size={24} className="mr-2" /> GetApiService <Badge color="gray">Inherited</Badge>

<Note>Inherited from `Microsoft.Restier.Core.InvocationContext`</Note>

Gets an API service.

#### Syntax

```csharp theme={"dark"}
public object GetApiService(System.Type type)
```

#### Parameters

| Name   | Type          | Description           |
| ------ | ------------- | --------------------- |
| `type` | `System.Type` | The API service type. |

#### Returns

Type: `object`
The API service instance.

### <Icon icon="code-fork" iconType="duotone" color="#419AC5" size={24} className="mr-2" /> GetHashCode <Badge color="gray">Inherited</Badge> <Badge color="orange">Virtual</Badge>

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
public virtual int GetHashCode()
```

#### Returns

Type: `int`

### <Icon icon="function" iconType="duotone" color="#419AC5" size={24} className="mr-2" /> GetType <Badge color="gray">Inherited</Badge>

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
public System.Type GetType()
```

#### Returns

Type: `System.Type`

### <Icon icon="function" iconType="duotone" color="#419AC5" size={24} className="mr-2" /> MemberwiseClone <Badge color="gray">Inherited</Badge>

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
protected internal object MemberwiseClone()
```

#### Returns

Type: `object`

### <Icon icon="thumbtack" iconType="duotone" color="#419AC5" size={24} className="mr-2" /> ReferenceEquals <Badge color="gray">Inherited</Badge>

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
public static bool ReferenceEquals(object objA, object objB)
```

#### Parameters

| Name   | Type      | Description |
| ------ | --------- | ----------- |
| `objA` | `object?` | -           |
| `objB` | `object?` | -           |

#### Returns

Type: `bool`

### <Icon icon="code-fork" iconType="duotone" color="#419AC5" size={24} className="mr-2" /> ToString <Badge color="gray">Inherited</Badge> <Badge color="orange">Virtual</Badge>

<Note>Inherited from `object`</Note>

#### Syntax

```csharp theme={"dark"}
public virtual string ToString()
```

#### Returns

Type: `string?`
