﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
<link rel="canonical" href="https://ignite.apache.org/releases/latest/dotnetdoc/api/Apache.Ignite.Core.Services.IServices.html" />
    <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.24.0.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="../">
    
  
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-61232409-1', 'auto');
  ga('send', 'pageview');

</script></head>
  <body data-spy="scroll" data-target="#affix">
    <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"></div>
          <div class="sr-items"></div>
          <ul id="pagination"></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">System.Threading.Tasks.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">System.Threading.Tasks.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_System_Collections_Generic_IEnumerable_Apache_Ignite_Core_Services_ServiceConfiguration__" data-uid="Apache.Ignite.Core.Services.IServices.DeployAll(System.Collections.Generic.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">System.Collections.Generic.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_System_Collections_Generic_IEnumerable_Apache_Ignite_Core_Services_ServiceConfiguration__" data-uid="Apache.Ignite.Core.Services.IServices.DeployAllAsync(System.Collections.Generic.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">System.Collections.Generic.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">System.Threading.Tasks.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">System.Threading.Tasks.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">System.Threading.Tasks.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">System.Threading.Tasks.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">System.Threading.Tasks.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">System.Threading.Tasks.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">System.Collections.Generic.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">System.Collections.Generic.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">
              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
              </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>
