blob: e405b5608ae307bb11dd064b31afed588c6ba9c6 [file] [log] [blame]
<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Interface IServices
| Apache Ignite.NET </title>
<meta name="viewport" content="width=device-width">
<meta name="title" content="Interface IServices
| Apache Ignite.NET ">
<meta name="generator" content="docfx 2.58.4.0">
<link rel="shortcut icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/docfx.vendor.css">
<link rel="stylesheet" href="../styles/docfx.css">
<link rel="stylesheet" href="../styles/main.css">
<meta property="docfx:navrel" content="../toc.html">
<meta property="docfx:tocrel" content="toc.html">
<meta property="docfx:rel" content="../">
</head>
<body data-spy="scroll" data-target="#affix" data-offset="120">
<div id="wrapper">
<header>
<nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../images/logo_ignite_32_32.png" alt="">
</a>
</div>
<div class="collapse navbar-collapse" id="navbar">
<form class="navbar-form navbar-right" role="search" id="search">
<div class="form-group">
<input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
</div>
</form>
</div>
</div>
</nav>
<div class="subnav navbar navbar-default">
<div class="container hide-when-search" id="breadcrumb">
<ul class="breadcrumb">
<li></li>
</ul>
</div>
</div>
</header>
<div class="container body-content">
<div id="search-results">
<div class="search-list">Search Results for <span></span></div>
<div class="sr-items">
<p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
</div>
<ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
</div>
</div>
<div role="main" class="container body-content hide-when-search">
<div class="sidenav hide-when-search">
<a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
<div class="sidetoggle collapse" id="sidetoggle">
<div id="sidetoc"></div>
</div>
</div>
<div class="article row grid-right">
<div class="col-md-10">
<article class="content wrap" id="_content" data-uid="Apache.Ignite.Core.Services.IServices">
<h1 id="Apache_Ignite_Core_Services_IServices" data-uid="Apache.Ignite.Core.Services.IServices" class="text-break">Interface IServices
</h1>
<div class="markdown level0 summary"><p>Defines functionality to deploy distributed services in the Ignite.</p>
</div>
<div class="markdown level0 conceptual"></div>
<h6><strong>Namespace</strong>: <a class="xref" href="Apache.Ignite.Core.Services.html">Apache.Ignite.Core.Services</a></h6>
<h6><strong>Assembly</strong>: Apache.Ignite.Core.dll</h6>
<h5 id="Apache_Ignite_Core_Services_IServices_syntax">Syntax</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public interface IServices</code></pre>
</div>
<h3 id="properties">Properties
</h3>
<a id="Apache_Ignite_Core_Services_IServices_ClusterGroup_" data-uid="Apache.Ignite.Core.Services.IServices.ClusterGroup*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_ClusterGroup" data-uid="Apache.Ignite.Core.Services.IServices.ClusterGroup">ClusterGroup</h4>
<div class="markdown level1 summary"><p>Gets the cluster group to which this instance belongs.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">IClusterGroup ClusterGroup { get; }</code></pre>
</div>
<h5 class="propertyValue">Property Value</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Cluster.IClusterGroup.html">IClusterGroup</a></td>
<td><p>The cluster group to which this instance belongs.</p>
</td>
</tr>
</tbody>
</table>
<h3 id="methods">Methods
</h3>
<a id="Apache_Ignite_Core_Services_IServices_Cancel_" data-uid="Apache.Ignite.Core.Services.IServices.Cancel*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_Cancel_System_String_" data-uid="Apache.Ignite.Core.Services.IServices.Cancel(System.String)">Cancel(String)</h4>
<div class="markdown level1 summary"><p>Cancels service deployment. If a service with specified name was deployed on the grid,
then <a class="xref" href="Apache.Ignite.Core.Services.IService.html#Apache_Ignite_Core_Services_IService_Cancel_Apache_Ignite_Core_Services_IServiceContext_">Cancel(IServiceContext)</a> method will be called on it.
<p>
Note that Ignite cannot guarantee that the service exits from <a class="xref" href="Apache.Ignite.Core.Services.IService.html#Apache_Ignite_Core_Services_IService_Execute_Apache_Ignite_Core_Services_IServiceContext_">Execute(IServiceContext)</a>
method whenever <a class="xref" href="Apache.Ignite.Core.Services.IService.html#Apache_Ignite_Core_Services_IService_Cancel_Apache_Ignite_Core_Services_IServiceContext_">Cancel(IServiceContext)</a> is called. It is up to the user to
make sure that the service code properly reacts to cancellations.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">void Cancel(string name)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">name</span></td>
<td><p>Name of the service to cancel.</p>
</td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_CancelAll_" data-uid="Apache.Ignite.Core.Services.IServices.CancelAll*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_CancelAll" data-uid="Apache.Ignite.Core.Services.IServices.CancelAll">CancelAll()</h4>
<div class="markdown level1 summary"><p>Cancels all deployed services.
<p>
Note that depending on user logic, it may still take extra time for a service to
finish execution, even after it was cancelled.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">void CancelAll()</code></pre>
</div>
<a id="Apache_Ignite_Core_Services_IServices_CancelAllAsync_" data-uid="Apache.Ignite.Core.Services.IServices.CancelAllAsync*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_CancelAllAsync" data-uid="Apache.Ignite.Core.Services.IServices.CancelAllAsync">CancelAllAsync()</h4>
<div class="markdown level1 summary"><p>Cancels all deployed services.
<p>
Note that depending on user logic, it may still take extra time for a service to
finish execution, even after it was cancelled.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">Task CancelAllAsync()</code></pre>
</div>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">Task</span></td>
<td></td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_CancelAsync_" data-uid="Apache.Ignite.Core.Services.IServices.CancelAsync*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_CancelAsync_System_String_" data-uid="Apache.Ignite.Core.Services.IServices.CancelAsync(System.String)">CancelAsync(String)</h4>
<div class="markdown level1 summary"><p>Cancels service deployment. If a service with specified name was deployed on the grid,
then <a class="xref" href="Apache.Ignite.Core.Services.IService.html#Apache_Ignite_Core_Services_IService_Cancel_Apache_Ignite_Core_Services_IServiceContext_">Cancel(IServiceContext)</a> method will be called on it.
<p>
Note that Ignite cannot guarantee that the service exits from <a class="xref" href="Apache.Ignite.Core.Services.IService.html#Apache_Ignite_Core_Services_IService_Execute_Apache_Ignite_Core_Services_IServiceContext_">Execute(IServiceContext)</a>
method whenever <a class="xref" href="Apache.Ignite.Core.Services.IService.html#Apache_Ignite_Core_Services_IService_Cancel_Apache_Ignite_Core_Services_IServiceContext_">Cancel(IServiceContext)</a> is called. It is up to the user to
make sure that the service code properly reacts to cancellations.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">Task CancelAsync(string name)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">name</span></td>
<td><p>Name of the service to cancel.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">Task</span></td>
<td></td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_Deploy_" data-uid="Apache.Ignite.Core.Services.IServices.Deploy*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_Deploy_Apache_Ignite_Core_Services_ServiceConfiguration_" data-uid="Apache.Ignite.Core.Services.IServices.Deploy(Apache.Ignite.Core.Services.ServiceConfiguration)">Deploy(ServiceConfiguration)</h4>
<div class="markdown level1 summary"><p>Deploys instances of the service in the Ignite according to provided configuration.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">void Deploy(ServiceConfiguration configuration)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Services.ServiceConfiguration.html">ServiceConfiguration</a></td>
<td><span class="parametername">configuration</span></td>
<td><p>Service configuration.</p>
</td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_DeployAll_" data-uid="Apache.Ignite.Core.Services.IServices.DeployAll*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_DeployAll_IEnumerable_Apache_Ignite_Core_Services_ServiceConfiguration__" data-uid="Apache.Ignite.Core.Services.IServices.DeployAll(IEnumerable{Apache.Ignite.Core.Services.ServiceConfiguration})">DeployAll(IEnumerable&lt;ServiceConfiguration&gt;)</h4>
<div class="markdown level1 summary"><p>Deploys multiple services described by provided configurations. Depending on specified parameters,
multiple instances of the same service may be deployed. Whenever topology changes,
Ignite will automatically rebalance the deployed services within cluster to make sure that each node
will end up with about equal number of deployed instances whenever possible.
<p>
If deployment of some of the provided services fails, then <a class="xref" href="Apache.Ignite.Core.Services.ServiceDeploymentException.html">ServiceDeploymentException</a>
containing a list of failed service configurations
(<a class="xref" href="Apache.Ignite.Core.Services.ServiceDeploymentException.html#Apache_Ignite_Core_Services_ServiceDeploymentException_FailedConfigurations">FailedConfigurations</a>) will be thrown. It is guaranteed that all
services that were provided to this method and are not present in the list of failed services are
successfully deployed by the moment of the exception being thrown.
Note that if exception is thrown, then partial deployment may have occurred.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">void DeployAll(IEnumerable&lt;ServiceConfiguration&gt; configurations)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">IEnumerable</span>&lt;<a class="xref" href="Apache.Ignite.Core.Services.ServiceConfiguration.html">ServiceConfiguration</a>&gt;</td>
<td><span class="parametername">configurations</span></td>
<td><p>Collection of service configurations to be deployed.</p>
</td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_DeployAllAsync_" data-uid="Apache.Ignite.Core.Services.IServices.DeployAllAsync*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_DeployAllAsync_IEnumerable_Apache_Ignite_Core_Services_ServiceConfiguration__" data-uid="Apache.Ignite.Core.Services.IServices.DeployAllAsync(IEnumerable{Apache.Ignite.Core.Services.ServiceConfiguration})">DeployAllAsync(IEnumerable&lt;ServiceConfiguration&gt;)</h4>
<div class="markdown level1 summary"><p>Asynchronously deploys multiple services described by provided configurations. Depending on specified
parameters, multiple instances of the same service may be deployed (<a class="xref" href="Apache.Ignite.Core.Services.ServiceConfiguration.html">ServiceConfiguration</a>).
Whenever topology changes, Ignite will automatically rebalance the deployed services within cluster to make
sure that each node will end up with about equal number of deployed instances whenever possible.
<p>
If deployment of some of the provided services fails, then <a class="xref" href="Apache.Ignite.Core.Services.ServiceDeploymentException.html">ServiceDeploymentException</a>
containing a list of failed service configurations
(<a class="xref" href="Apache.Ignite.Core.Services.ServiceDeploymentException.html#Apache_Ignite_Core_Services_ServiceDeploymentException_FailedConfigurations">FailedConfigurations</a>) will be thrown. It is guaranteed that all
services, that were provided to this method and are not present in the list of failed services, are
successfully deployed by the moment of the exception being thrown.
Note that if exception is thrown, then partial deployment may have occurred.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">Task DeployAllAsync(IEnumerable&lt;ServiceConfiguration&gt; configurations)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">IEnumerable</span>&lt;<a class="xref" href="Apache.Ignite.Core.Services.ServiceConfiguration.html">ServiceConfiguration</a>&gt;</td>
<td><span class="parametername">configurations</span></td>
<td><p>Collection of service configurations to be deployed.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">Task</span></td>
<td></td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_DeployAsync_" data-uid="Apache.Ignite.Core.Services.IServices.DeployAsync*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_DeployAsync_Apache_Ignite_Core_Services_ServiceConfiguration_" data-uid="Apache.Ignite.Core.Services.IServices.DeployAsync(Apache.Ignite.Core.Services.ServiceConfiguration)">DeployAsync(ServiceConfiguration)</h4>
<div class="markdown level1 summary"><p>Deploys instances of the service in the Ignite according to provided configuration.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">Task DeployAsync(ServiceConfiguration configuration)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Services.ServiceConfiguration.html">ServiceConfiguration</a></td>
<td><span class="parametername">configuration</span></td>
<td><p>Service configuration.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">Task</span></td>
<td></td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_DeployClusterSingleton_" data-uid="Apache.Ignite.Core.Services.IServices.DeployClusterSingleton*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_DeployClusterSingleton_System_String_Apache_Ignite_Core_Services_IService_" data-uid="Apache.Ignite.Core.Services.IServices.DeployClusterSingleton(System.String,Apache.Ignite.Core.Services.IService)">DeployClusterSingleton(String, IService)</h4>
<div class="markdown level1 summary"><p>Deploys a cluster-wide singleton service. Ignite guarantees that there is always
one instance of the service in the cluster. In case if Ignite node on which the service
was deployed crashes or stops, Ignite will automatically redeploy it on another node.
However, if the node on which the service is deployed remains in topology, then the
service will always be deployed on that node only, regardless of topology changes.
<p>
Note that in case of topology changes, due to network delays, there may be a temporary situation
when a singleton service instance will be active on more than one node (e.g. crash detection delay).</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">void DeployClusterSingleton(string name, IService service)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">name</span></td>
<td><p>Service name.</p>
</td>
</tr>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Services.IService.html">IService</a></td>
<td><span class="parametername">service</span></td>
<td><p>Service instance.</p>
</td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_DeployClusterSingletonAsync_" data-uid="Apache.Ignite.Core.Services.IServices.DeployClusterSingletonAsync*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_DeployClusterSingletonAsync_System_String_Apache_Ignite_Core_Services_IService_" data-uid="Apache.Ignite.Core.Services.IServices.DeployClusterSingletonAsync(System.String,Apache.Ignite.Core.Services.IService)">DeployClusterSingletonAsync(String, IService)</h4>
<div class="markdown level1 summary"><p>Deploys a cluster-wide singleton service. Ignite guarantees that there is always
one instance of the service in the cluster. In case if Ignite node on which the service
was deployed crashes or stops, Ignite will automatically redeploy it on another node.
However, if the node on which the service is deployed remains in topology, then the
service will always be deployed on that node only, regardless of topology changes.
<p>
Note that in case of topology changes, due to network delays, there may be a temporary situation
when a singleton service instance will be active on more than one node (e.g. crash detection delay).</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">Task DeployClusterSingletonAsync(string name, IService service)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">name</span></td>
<td><p>Service name.</p>
</td>
</tr>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Services.IService.html">IService</a></td>
<td><span class="parametername">service</span></td>
<td><p>Service instance.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">Task</span></td>
<td></td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_DeployKeyAffinitySingleton_" data-uid="Apache.Ignite.Core.Services.IServices.DeployKeyAffinitySingleton*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_DeployKeyAffinitySingleton__1_System_String_Apache_Ignite_Core_Services_IService_System_String___0_" data-uid="Apache.Ignite.Core.Services.IServices.DeployKeyAffinitySingleton``1(System.String,Apache.Ignite.Core.Services.IService,System.String,``0)">DeployKeyAffinitySingleton&lt;TK&gt;(String, IService, String, TK)</h4>
<div class="markdown level1 summary"><p>Deploys one instance of this service on the primary node for a given affinity key.
Whenever topology changes and primary node assignment changes, Ignite will always
make sure that the service is undeployed on the previous primary node and deployed
on the new primary node.
<p>
Note that in case of topology changes, due to network delays, there may be a temporary situation
when a service instance will be active on more than one node (e.g. crash detection delay).</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">void DeployKeyAffinitySingleton&lt;TK&gt;(string name, IService service, string cacheName, TK affinityKey)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">name</span></td>
<td><p>Service name.</p>
</td>
</tr>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Services.IService.html">IService</a></td>
<td><span class="parametername">service</span></td>
<td><p>Service instance.</p>
</td>
</tr>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">cacheName</span></td>
<td><p>Name of the cache on which affinity for key should be calculated, null for
default cache.</p>
</td>
</tr>
<tr>
<td><span class="xref">TK</span></td>
<td><span class="parametername">affinityKey</span></td>
<td><p>Affinity cache key.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="typeParameters">Type Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="parametername">TK</span></td>
<td></td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_DeployKeyAffinitySingletonAsync_" data-uid="Apache.Ignite.Core.Services.IServices.DeployKeyAffinitySingletonAsync*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_DeployKeyAffinitySingletonAsync__1_System_String_Apache_Ignite_Core_Services_IService_System_String___0_" data-uid="Apache.Ignite.Core.Services.IServices.DeployKeyAffinitySingletonAsync``1(System.String,Apache.Ignite.Core.Services.IService,System.String,``0)">DeployKeyAffinitySingletonAsync&lt;TK&gt;(String, IService, String, TK)</h4>
<div class="markdown level1 summary"><p>Deploys one instance of this service on the primary node for a given affinity key.
Whenever topology changes and primary node assignment changes, Ignite will always
make sure that the service is undeployed on the previous primary node and deployed
on the new primary node.
<p>
Note that in case of topology changes, due to network delays, there may be a temporary situation
when a service instance will be active on more than one node (e.g. crash detection delay).</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">Task DeployKeyAffinitySingletonAsync&lt;TK&gt;(string name, IService service, string cacheName, TK affinityKey)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">name</span></td>
<td><p>Service name.</p>
</td>
</tr>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Services.IService.html">IService</a></td>
<td><span class="parametername">service</span></td>
<td><p>Service instance.</p>
</td>
</tr>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">cacheName</span></td>
<td><p>Name of the cache on which affinity for key should be calculated, null for
default cache.</p>
</td>
</tr>
<tr>
<td><span class="xref">TK</span></td>
<td><span class="parametername">affinityKey</span></td>
<td><p>Affinity cache key.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">Task</span></td>
<td></td>
</tr>
</tbody>
</table>
<h5 class="typeParameters">Type Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="parametername">TK</span></td>
<td></td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_DeployMultiple_" data-uid="Apache.Ignite.Core.Services.IServices.DeployMultiple*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_DeployMultiple_System_String_Apache_Ignite_Core_Services_IService_System_Int32_System_Int32_" data-uid="Apache.Ignite.Core.Services.IServices.DeployMultiple(System.String,Apache.Ignite.Core.Services.IService,System.Int32,System.Int32)">DeployMultiple(String, IService, Int32, Int32)</h4>
<div class="markdown level1 summary"><p>Deploys multiple instances of the service on the grid. Ignite will deploy a
maximum amount of services equal to <code data-dev-comment-type="paramref" class="paramref">totalCount</code> parameter making sure that
there are no more than <code data-dev-comment-type="paramref" class="paramref">maxPerNodeCount</code> service instances running
on each node. Whenever topology changes, Ignite will automatically rebalance
the deployed services within cluster to make sure that each node will end up with
about equal number of deployed instances whenever possible.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">void DeployMultiple(string name, IService service, int totalCount, int maxPerNodeCount)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">name</span></td>
<td><p>Service name.</p>
</td>
</tr>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Services.IService.html">IService</a></td>
<td><span class="parametername">service</span></td>
<td><p>Service instance.</p>
</td>
</tr>
<tr>
<td><span class="xref">System.Int32</span></td>
<td><span class="parametername">totalCount</span></td>
<td><p>Maximum number of deployed services in the grid, 0 for unlimited.</p>
</td>
</tr>
<tr>
<td><span class="xref">System.Int32</span></td>
<td><span class="parametername">maxPerNodeCount</span></td>
<td><p>Maximum number of deployed services on each node, 0 for unlimited.</p>
</td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_DeployMultipleAsync_" data-uid="Apache.Ignite.Core.Services.IServices.DeployMultipleAsync*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_DeployMultipleAsync_System_String_Apache_Ignite_Core_Services_IService_System_Int32_System_Int32_" data-uid="Apache.Ignite.Core.Services.IServices.DeployMultipleAsync(System.String,Apache.Ignite.Core.Services.IService,System.Int32,System.Int32)">DeployMultipleAsync(String, IService, Int32, Int32)</h4>
<div class="markdown level1 summary"><p>Deploys multiple instances of the service on the grid. Ignite will deploy a
maximum amount of services equal to <code data-dev-comment-type="paramref" class="paramref">totalCount</code> parameter making sure that
there are no more than <code data-dev-comment-type="paramref" class="paramref">maxPerNodeCount</code> service instances running
on each node. Whenever topology changes, Ignite will automatically rebalance
the deployed services within cluster to make sure that each node will end up with
about equal number of deployed instances whenever possible.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">Task DeployMultipleAsync(string name, IService service, int totalCount, int maxPerNodeCount)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">name</span></td>
<td><p>Service name.</p>
</td>
</tr>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Services.IService.html">IService</a></td>
<td><span class="parametername">service</span></td>
<td><p>Service instance.</p>
</td>
</tr>
<tr>
<td><span class="xref">System.Int32</span></td>
<td><span class="parametername">totalCount</span></td>
<td><p>Maximum number of deployed services in the grid, 0 for unlimited.</p>
</td>
</tr>
<tr>
<td><span class="xref">System.Int32</span></td>
<td><span class="parametername">maxPerNodeCount</span></td>
<td><p>Maximum number of deployed services on each node, 0 for unlimited.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">Task</span></td>
<td></td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_DeployNodeSingleton_" data-uid="Apache.Ignite.Core.Services.IServices.DeployNodeSingleton*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_DeployNodeSingleton_System_String_Apache_Ignite_Core_Services_IService_" data-uid="Apache.Ignite.Core.Services.IServices.DeployNodeSingleton(System.String,Apache.Ignite.Core.Services.IService)">DeployNodeSingleton(String, IService)</h4>
<div class="markdown level1 summary"><p>Deploys a per-node singleton service. Ignite guarantees that there is always
one instance of the service running on each node. Whenever new nodes are started
within the underlying cluster group, Ignite will automatically deploy one instance of
the service on every new node.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">void DeployNodeSingleton(string name, IService service)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">name</span></td>
<td><p>Service name.</p>
</td>
</tr>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Services.IService.html">IService</a></td>
<td><span class="parametername">service</span></td>
<td><p>Service instance.</p>
</td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_DeployNodeSingletonAsync_" data-uid="Apache.Ignite.Core.Services.IServices.DeployNodeSingletonAsync*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_DeployNodeSingletonAsync_System_String_Apache_Ignite_Core_Services_IService_" data-uid="Apache.Ignite.Core.Services.IServices.DeployNodeSingletonAsync(System.String,Apache.Ignite.Core.Services.IService)">DeployNodeSingletonAsync(String, IService)</h4>
<div class="markdown level1 summary"><p>Deploys a per-node singleton service. Ignite guarantees that there is always
one instance of the service running on each node. Whenever new nodes are started
within the underlying cluster group, Ignite will automatically deploy one instance of
the service on every new node.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">Task DeployNodeSingletonAsync(string name, IService service)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">name</span></td>
<td><p>Service name.</p>
</td>
</tr>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Services.IService.html">IService</a></td>
<td><span class="parametername">service</span></td>
<td><p>Service instance.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">Task</span></td>
<td></td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_GetDynamicServiceProxy_" data-uid="Apache.Ignite.Core.Services.IServices.GetDynamicServiceProxy*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_GetDynamicServiceProxy_System_String_" data-uid="Apache.Ignite.Core.Services.IServices.GetDynamicServiceProxy(System.String)">GetDynamicServiceProxy(String)</h4>
<div class="markdown level1 summary"><p>Gets a remote handle on the service as a dynamic object. If service is available locally,
then local instance is returned, otherwise, a remote proxy is dynamically
created and provided for the specified service.
<p>
This method utilizes <code>dynamic</code> feature of the language and does not require any
service interfaces or classes. Java services can be accessed as well as .NET services.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">dynamic GetDynamicServiceProxy(string name)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">name</span></td>
<td><p>Service name.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Object</span></td>
<td><p>Either proxy over remote service or local service if it is deployed locally.</p>
</td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_GetDynamicServiceProxy_" data-uid="Apache.Ignite.Core.Services.IServices.GetDynamicServiceProxy*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_GetDynamicServiceProxy_System_String_System_Boolean_" data-uid="Apache.Ignite.Core.Services.IServices.GetDynamicServiceProxy(System.String,System.Boolean)">GetDynamicServiceProxy(String, Boolean)</h4>
<div class="markdown level1 summary"><p>Gets a remote handle on the service as a dynamic object. If service is available locally,
then local instance is returned, otherwise, a remote proxy is dynamically
created and provided for the specified service.
<p>
This method utilizes <code>dynamic</code> feature of the language and does not require any
service interfaces or classes. Java services can be accessed as well as .NET services.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">dynamic GetDynamicServiceProxy(string name, bool sticky)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">name</span></td>
<td><p>Service name.</p>
</td>
</tr>
<tr>
<td><span class="xref">System.Boolean</span></td>
<td><span class="parametername">sticky</span></td>
<td><p>Whether or not Ignite should always contact the same remote
service or try to load-balance between services.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Object</span></td>
<td><p>Either proxy over remote service or local service if it is deployed locally.</p>
</td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_GetService_" data-uid="Apache.Ignite.Core.Services.IServices.GetService*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_GetService__1_System_String_" data-uid="Apache.Ignite.Core.Services.IServices.GetService``1(System.String)">GetService&lt;T&gt;(String)</h4>
<div class="markdown level1 summary"><p>Gets deployed service with specified name.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">T GetService&lt;T&gt;(string name)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">name</span></td>
<td><p>Service name.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">T</span></td>
<td><p>Deployed service with specified name.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="typeParameters">Type Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="parametername">T</span></td>
<td><p>Service type.</p>
</td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_GetServiceDescriptors_" data-uid="Apache.Ignite.Core.Services.IServices.GetServiceDescriptors*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_GetServiceDescriptors" data-uid="Apache.Ignite.Core.Services.IServices.GetServiceDescriptors">GetServiceDescriptors()</h4>
<div class="markdown level1 summary"><p>Gets metadata about all deployed services.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">ICollection&lt;IServiceDescriptor&gt; GetServiceDescriptors()</code></pre>
</div>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">ICollection</span>&lt;<a class="xref" href="Apache.Ignite.Core.Services.IServiceDescriptor.html">IServiceDescriptor</a>&gt;</td>
<td><p>Metadata about all deployed services.</p>
</td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_GetServiceProxy_" data-uid="Apache.Ignite.Core.Services.IServices.GetServiceProxy*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_GetServiceProxy__1_System_String_" data-uid="Apache.Ignite.Core.Services.IServices.GetServiceProxy``1(System.String)">GetServiceProxy&lt;T&gt;(String)</h4>
<div class="markdown level1 summary"><p>Gets a remote handle on the service. If service is available locally,
then local instance is returned, otherwise, a remote proxy is dynamically
created and provided for the specified service.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">T GetServiceProxy&lt;T&gt;(string name)
where T : class</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">name</span></td>
<td><p>Service name.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">T</span></td>
<td><p>Either proxy over remote service or local service if it is deployed locally.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="typeParameters">Type Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="parametername">T</span></td>
<td><p>Service type.</p>
</td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_GetServiceProxy_" data-uid="Apache.Ignite.Core.Services.IServices.GetServiceProxy*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_GetServiceProxy__1_System_String_System_Boolean_" data-uid="Apache.Ignite.Core.Services.IServices.GetServiceProxy``1(System.String,System.Boolean)">GetServiceProxy&lt;T&gt;(String, Boolean)</h4>
<div class="markdown level1 summary"><p>Gets a remote handle on the service. If service is available locally,
then local instance is returned, otherwise, a remote proxy is dynamically
created and provided for the specified service.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">T GetServiceProxy&lt;T&gt;(string name, bool sticky)
where T : class</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">name</span></td>
<td><p>Service name.</p>
</td>
</tr>
<tr>
<td><span class="xref">System.Boolean</span></td>
<td><span class="parametername">sticky</span></td>
<td><p>Whether or not Ignite should always contact the same remote
service or try to load-balance between services.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">T</span></td>
<td><p>Either proxy over remote service or local service if it is deployed locally.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="typeParameters">Type Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="parametername">T</span></td>
<td><p>Service type.</p>
</td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_GetServices_" data-uid="Apache.Ignite.Core.Services.IServices.GetServices*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_GetServices__1_System_String_" data-uid="Apache.Ignite.Core.Services.IServices.GetServices``1(System.String)">GetServices&lt;T&gt;(String)</h4>
<div class="markdown level1 summary"><p>Gets all deployed services with specified name.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">ICollection&lt;T&gt; GetServices&lt;T&gt;(string name)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">name</span></td>
<td><p>Service name.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">ICollection</span>&lt;T&gt;</td>
<td><p>All deployed services with specified name.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="typeParameters">Type Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="parametername">T</span></td>
<td><p>Service type.</p>
</td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_WithKeepBinary_" data-uid="Apache.Ignite.Core.Services.IServices.WithKeepBinary*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_WithKeepBinary" data-uid="Apache.Ignite.Core.Services.IServices.WithKeepBinary">WithKeepBinary()</h4>
<div class="markdown level1 summary"><p>Returns an instance with binary mode enabled.
Service method results will be kept in binary form.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">IServices WithKeepBinary()</code></pre>
</div>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Services.IServices.html">IServices</a></td>
<td><p>Instance with binary mode enabled.</p>
</td>
</tr>
</tbody>
</table>
<a id="Apache_Ignite_Core_Services_IServices_WithServerKeepBinary_" data-uid="Apache.Ignite.Core.Services.IServices.WithServerKeepBinary*"></a>
<h4 id="Apache_Ignite_Core_Services_IServices_WithServerKeepBinary" data-uid="Apache.Ignite.Core.Services.IServices.WithServerKeepBinary">WithServerKeepBinary()</h4>
<div class="markdown level1 summary"><p>Returns an instance with server-side binary mode enabled.
Service method arguments will be kept in binary form.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">IServices WithServerKeepBinary()</code></pre>
</div>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Apache.Ignite.Core.Services.IServices.html">IServices</a></td>
<td><p>Instance with server-side binary mode enabled.</p>
</td>
</tr>
</tbody>
</table>
</article>
</div>
<div class="hidden-sm col-md-2" role="complementary">
<div class="sideaffix">
<nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
<h5>In This Article</h5>
<div></div>
</nav>
</div>
</div>
</div>
</div>
<footer>
<div class="grad-bottom"></div>
<div class="footer">
<div class="container">
<span class="pull-right">
<a href="#top">Back to top</a>
</span>
© 2015 - 2019 The Apache Software Foundation
</div>
</div>
</footer>
</div>
<script type="text/javascript" src="../styles/docfx.vendor.js"></script>
<script type="text/javascript" src="../styles/docfx.js"></script>
<script type="text/javascript" src="../styles/main.js"></script>
</body>
</html>