<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<META NAME="ROBOTS" CONTENT="NOINDEX">
<link rel="canonical" href="https://ignite.apache.org/releases/1.7.0/dotnetdoc/functions_func_d.html" />
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>Apache Ignite.NET: Class Members - Functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<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>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="ignite_logo.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">Apache Ignite.NET
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('functions_func_d.html','');});
</script>
<div id="doc-content">
<div class="contents">
&#160;

<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
<li>Decrement()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_data_structures_1_1_i_atomic_long.html#ae2f880ad92e22c3742b088057f1f7f61">Apache.Ignite.Core.DataStructures.IAtomicLong</a>
</li>
<li>Delete()
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_cache_parallel_load_store_adapter.html#a5e2fbf7b8b96d924757f2a0261620978">Apache.Ignite.Core.Cache.Store.CacheParallelLoadStoreAdapter</a>
, <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_cache_store_adapter.html#aa1f9b5a9dee1643aa7242029f8e2fe55">Apache.Ignite.Core.Cache.Store.CacheStoreAdapter</a>
, <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.html#a01726d0353289c7408a931ebf746bb62">Apache.Ignite.Core.Cache.Store.ICacheStore</a>
</li>
<li>DeleteAll()
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_cache_parallel_load_store_adapter.html#ab9bb85f8a5cb1110087b11f64d28f447">Apache.Ignite.Core.Cache.Store.CacheParallelLoadStoreAdapter</a>
, <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_cache_store_adapter.html#a5696a38c6570a5db114cfe25d144487e">Apache.Ignite.Core.Cache.Store.CacheStoreAdapter</a>
, <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_store_1_1_i_cache_store.html#ad6e8f85a8def4998815ae290acd5e20f">Apache.Ignite.Core.Cache.Store.ICacheStore</a>
</li>
<li>Deploy()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_services_1_1_i_services.html#aa3971032ff01d7253b4ab57451004cde">Apache.Ignite.Core.Services.IServices</a>
</li>
<li>DeployAsync()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_services_1_1_i_services.html#a83b219ed8ba97ce2261dc47960b23e26">Apache.Ignite.Core.Services.IServices</a>
</li>
<li>DeployClusterSingleton()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_services_1_1_i_services.html#ae10b3f706877f59d9a64d702f5e9f54f">Apache.Ignite.Core.Services.IServices</a>
</li>
<li>DeployClusterSingletonAsync()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_services_1_1_i_services.html#a68c33f037459d168c5ef7fd8356ba421">Apache.Ignite.Core.Services.IServices</a>
</li>
<li>DeployKeyAffinitySingleton&lt; TK &gt;()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_services_1_1_i_services.html#a13ef580d9bc75346f7a8f1a1f2e2d35f">Apache.Ignite.Core.Services.IServices</a>
</li>
<li>DeployKeyAffinitySingletonAsync&lt; TK &gt;()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_services_1_1_i_services.html#abcbb740f9ff4261bca3d996927ad1ee3">Apache.Ignite.Core.Services.IServices</a>
</li>
<li>DeployMultiple()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_services_1_1_i_services.html#ad733ca0889ed691ba11b0a5d98ca47e5">Apache.Ignite.Core.Services.IServices</a>
</li>
<li>DeployMultipleAsync()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_services_1_1_i_services.html#ad71471f1e367d890c49cbc4fb3c827be">Apache.Ignite.Core.Services.IServices</a>
</li>
<li>DeployNodeSingleton()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_services_1_1_i_services.html#a67e78b68c17f196c57a9401c255c98ec">Apache.Ignite.Core.Services.IServices</a>
</li>
<li>DeployNodeSingletonAsync()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_services_1_1_i_services.html#ac1e98d94522525b267826652d3ded701">Apache.Ignite.Core.Services.IServices</a>
</li>
<li>Deserialize&lt; T &gt;()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_binary_1_1_i_binary_object.html#adee35ed7c6f337864851f6aad82c8dd6">Apache.Ignite.Core.Binary.IBinaryObject</a>
</li>
<li>DeserializeSection()
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_ignite_configuration_section.html#ade541ebbfdec69ffb10722423f790fcd">Apache.Ignite.Core.IgniteConfigurationSection</a>
</li>
<li>DestroyCache()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_i_ignite.html#a01735314c4fb0553582d0e362ea9dbe8">Apache.Ignite.Core.IIgnite</a>
</li>
<li>DisableLocal()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_events_1_1_i_events.html#a9e83509767bd095f46b9781d9bfbb6a8">Apache.Ignite.Core.Events.IEvents</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Mon Aug 1 2016 19:40:28 for Apache Ignite.NET by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
  </ul>
</div>
</body>
</html>
