> For the complete documentation index, see [llms.txt](https://docs.frends.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.frends.com/reference/frends-6.2.0/process-development/c-in-frends/available-namespaces.md).

# Available Namespaces

Using namespaces and classes in Frends has some limitations when compared to full .NET development environment. Here's a list of libraries, classes and namespaces that are available in Frends.

## Available common namespaces to use

Assets in following namespaces are directly available in Frends C# expressions without need to write the complete namespace:

* System
* System.Net
* System.Security
* System.Xml
* System.Xml.Linq
* System.Data
* System.Threading.Tasks
* System.Dynamic
* System.Linq
* System.Collections.Generic
* System.Reflection
* Newtonsoft.Json
* Newtonsoft.Json.Linq

In addition, functions from the following namespaces are available to use when complete namespace of the function is written:

* Microsoft.CodeAnalysis
* Microsoft.CSharp

Finally, all the functions from mscorlib (Multilanguage Standard Object Runtime Library) are also available when complete namespace of the function is written. These include at least:

{% columns %}
{% column %}

* Microsoft.Reflection
* Microsoft.Runtime.Hosting
* Microsoft.Win32
* Microsoft.Win32.SafeHandles
* System
* System.Collections
* System.Collections.Concurrent
* System.Collections.Generic
* System.Collections.ObjectModel
* System.Configuration.Assemblies
* System.Deployment.Internal
* System.Deployment.Internal.Isolation
* System.Deployment.Internal.Isolation.Manifest
* System.Diagnostics
* System.Diagnostics.CodeAnalysis
* System.Diagnostics.Contracts
* System.Diagnostics.Contracts.Internal
* System.Diagnostics.SymbolStore
* System.Diagnostics.Tracing
* System.Diagnostics.Tracing.Internal
* System.Globalization
* System.IO
* System.IO.IsolatedStorage
* System.Numerics.Hashing
* System.Reflection
* System.Reflection.Emit
* System.Resources
* System.Runtime
* System.Runtime.CompilerServices
* System.Runtime.ConstrainedExecution
* System.Runtime.DesignerServices
* System.Runtime.ExceptionServices
* System.Runtime.Hosting
* System.Runtime.InteropServices
* System.Runtime.InteropServices.ComTypes
* System.Runtime.InteropServices.Expando
* System.Runtime.InteropServices.TCEAdapterGen
* System.Runtime.InteropServices.WindowsRuntime
  {% endcolumn %}

{% column %}

* System.Runtime.Remoting
* System.Runtime.Remoting.Activation
* System.Runtime.Remoting.Channels
* System.Runtime.Remoting.Contexts
* System.Runtime.Remoting.Lifetime
* System.Runtime.Remoting.Messaging
* System.Runtime.Remoting.Metadata
* System.Runtime.Remoting.Metadata.W3cXsd2001
* System.Runtime.Remoting.Proxies
* System.Runtime.Remoting.Services
* System.Runtime.Serialization
* System.Runtime.Serialization.Formatters
* System.Runtime.Serialization.Formatters.Binary
* System.Runtime.Versioning
* System.Security
* System.Security.AccessControl
* System.Security.Claims
* System.Security.Cryptography
* System.Security.Cryptography.X509Certificates
* System.Security.Permissions
* System.Security.Policy
* System.Security.Principal
* System.Security.Util
* System.StubHelpers
* System.Text
* System.Threading
* System.Threading.NetCore
* System.Threading.Tasks
* Windows.Foundation.Diagnostics
  {% endcolumn %}
  {% endcolumns %}

Custom Tasks may use other libraries and namespaces as well, these limitations apply only to the C# code written in Frends Process Editor.

## Frends namespaces

Each Task added to Frends includes a set of classes that can be used to work with those Tasks. For example, HTTP Request Task in Frends expects to receive headers through using an array of `Frends.HTTP.Request.Definitions.Header` objects, which the UI generally converts into a list of text fields.&#x20;

It's also possible to dynamically generate a list of headers for our Task, by creating the array of those objects in a Code Task.&#x20;

Here's an example of how that would be done:

```csharp
{
    var headerList = new List<Frends.HTTP.Request.Definitions.Header>();
    
    headerList.Add(new Frends.HTTP.Request.Definitions.Header {
        Name = "Content-type",
        Value = "application/json"
    });
    
    return headerList.ToArray();
}
```

Resulting variable could then be used in the expression for the headers for a HTTP Request Task.

You can find out what objects each Task expects to receive by checking the tooltips for each field in the Task parameters, or by heading over to the documentation for the Task. If the information is still missing, all the source codes are available in the GitHub repository for Frends Tasks, which will definitely show what data type is expected.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.frends.com/reference/frends-6.2.0/process-development/c-in-frends/available-namespaces.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
