<!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.6.0/dotnetdoc/struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.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: Apache.Ignite.Core.Cache.Affinity.AffinityKey Struct Reference</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('struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#properties">Properties</a> &#124;
<a href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Apache.Ignite.Core.Cache.Affinity.AffinityKey Struct Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Optional wrapper for cache keys to provide support for custom affinity mapping. The value returned by <a class="el" href="namespace_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity.html">Affinity</a> will be used for key-to-node affinity.  
 <a href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for Apache.Ignite.Core.Cache.Affinity.AffinityKey:</div>
<div class="dyncontent">
 <div class="center">
  <img src="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.png" usemap="#Apache.Ignite.Core.Cache.Affinity.AffinityKey_map" alt=""/>
  <map id="Apache.Ignite.Core.Cache.Affinity.AffinityKey_map" name="Apache.Ignite.Core.Cache.Affinity.AffinityKey_map">
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a59bcaa9f1b62958bbd72bdcc37ac2a00"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html#a59bcaa9f1b62958bbd72bdcc37ac2a00">AffinityKey</a> (object key)</td></tr>
<tr class="memdesc:a59bcaa9f1b62958bbd72bdcc37ac2a00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new instance of the <a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html" title="Optional wrapper for cache keys to provide support for custom affinity mapping. The value returned by...">AffinityKey</a> struct.  <a href="#a59bcaa9f1b62958bbd72bdcc37ac2a00">More...</a><br /></td></tr>
<tr class="separator:a59bcaa9f1b62958bbd72bdcc37ac2a00"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f62e824dd172c57427da955057e4a01"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html#a6f62e824dd172c57427da955057e4a01">AffinityKey</a> (object key, object affinity)</td></tr>
<tr class="memdesc:a6f62e824dd172c57427da955057e4a01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new instance of the <a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html" title="Optional wrapper for cache keys to provide support for custom affinity mapping. The value returned by...">AffinityKey</a> struct.  <a href="#a6f62e824dd172c57427da955057e4a01">More...</a><br /></td></tr>
<tr class="separator:a6f62e824dd172c57427da955057e4a01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9f66781f3e4fdd4a0cea58b61a82130"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html#ae9f66781f3e4fdd4a0cea58b61a82130">WriteBinary</a> (<a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_binary_1_1_i_binary_writer.html">IBinaryWriter</a> writer)</td></tr>
<tr class="memdesc:ae9f66781f3e4fdd4a0cea58b61a82130"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes this object to the given writer.  <a href="#ae9f66781f3e4fdd4a0cea58b61a82130">More...</a><br /></td></tr>
<tr class="separator:ae9f66781f3e4fdd4a0cea58b61a82130"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4633b8f057fba6efa6315f822fd232a2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html#a4633b8f057fba6efa6315f822fd232a2">Equals</a> (<a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html">AffinityKey</a> other)</td></tr>
<tr class="memdesc:a4633b8f057fba6efa6315f822fd232a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the current object is equal to another object of the same type.  <a href="#a4633b8f057fba6efa6315f822fd232a2">More...</a><br /></td></tr>
<tr class="separator:a4633b8f057fba6efa6315f822fd232a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae55bb67f94958e16d3a20375e0c465a"><td class="memItemLeft" align="right" valign="top">override bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html#aae55bb67f94958e16d3a20375e0c465a">Equals</a> (object obj)</td></tr>
<tr class="memdesc:aae55bb67f94958e16d3a20375e0c465a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines whether the specified object, is equal to this instance.  <a href="#aae55bb67f94958e16d3a20375e0c465a">More...</a><br /></td></tr>
<tr class="separator:aae55bb67f94958e16d3a20375e0c465a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abeea8a910e3f83d664362781e528336c"><td class="memItemLeft" align="right" valign="top">override int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html#abeea8a910e3f83d664362781e528336c">GetHashCode</a> ()</td></tr>
<tr class="memdesc:abeea8a910e3f83d664362781e528336c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a hash code for this instance.  <a href="#abeea8a910e3f83d664362781e528336c">More...</a><br /></td></tr>
<tr class="separator:abeea8a910e3f83d664362781e528336c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:abdaa22714d57b8abd560586f11e8cab6"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html#abdaa22714d57b8abd560586f11e8cab6">operator==</a> (<a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html">AffinityKey</a> left, <a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html">AffinityKey</a> right)</td></tr>
<tr class="memdesc:abdaa22714d57b8abd560586f11e8cab6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements the operator ==.  <a href="#abdaa22714d57b8abd560586f11e8cab6">More...</a><br /></td></tr>
<tr class="separator:abdaa22714d57b8abd560586f11e8cab6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a158e0414852bf14e2b4cebae82a300b3"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html#a158e0414852bf14e2b4cebae82a300b3">operator!=</a> (<a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html">AffinityKey</a> left, <a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html">AffinityKey</a> right)</td></tr>
<tr class="memdesc:a158e0414852bf14e2b4cebae82a300b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements the operator !=.  <a href="#a158e0414852bf14e2b4cebae82a300b3">More...</a><br /></td></tr>
<tr class="separator:a158e0414852bf14e2b4cebae82a300b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="properties"></a>
Properties</h2></td></tr>
<tr class="memitem:abbabb99b83324f9d0ad8bbec13d961de"><td class="memItemLeft" align="right" valign="top">object&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html#abbabb99b83324f9d0ad8bbec13d961de">Key</a><code> [get]</code></td></tr>
<tr class="memdesc:abbabb99b83324f9d0ad8bbec13d961de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the key.  <a href="#abbabb99b83324f9d0ad8bbec13d961de">More...</a><br /></td></tr>
<tr class="separator:abbabb99b83324f9d0ad8bbec13d961de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a0fb2ea36172a152301ae6386b22c2e"><td class="memItemLeft" align="right" valign="top">object&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html#a3a0fb2ea36172a152301ae6386b22c2e">Affinity</a><code> [get]</code></td></tr>
<tr class="memdesc:a3a0fb2ea36172a152301ae6386b22c2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the affinity key.  <a href="#a3a0fb2ea36172a152301ae6386b22c2e">More...</a><br /></td></tr>
<tr class="separator:a3a0fb2ea36172a152301ae6386b22c2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"></div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a59bcaa9f1b62958bbd72bdcc37ac2a00"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Apache.Ignite.Core.Cache.Affinity.AffinityKey.AffinityKey </td>
          <td>(</td>
          <td class="paramtype">object&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">key</td><td>The key.</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6f62e824dd172c57427da955057e4a01"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Apache.Ignite.Core.Cache.Affinity.AffinityKey.AffinityKey </td>
          <td>(</td>
          <td class="paramtype">object&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">object&#160;</td>
          <td class="paramname"><em>affinity</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">key</td><td>The key.</td></tr>
    <tr><td class="paramname">affinity</td><td>The affinity key.</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a4633b8f057fba6efa6315f822fd232a2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Apache.Ignite.Core.Cache.Affinity.AffinityKey.Equals </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html">AffinityKey</a>&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">other</td><td>An object to compare with this object.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the current object is equal to the <em>other</em>  parameter; otherwise, false. </dd></dl>

</div>
</div>
<a class="anchor" id="aae55bb67f94958e16d3a20375e0c465a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">override bool Apache.Ignite.Core.Cache.Affinity.AffinityKey.Equals </td>
          <td>(</td>
          <td class="paramtype">object&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>The object to compare with this instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the specified object is equal to this instance; otherwise, <code>false</code>. </dd></dl>

</div>
</div>
<a class="anchor" id="abeea8a910e3f83d664362781e528336c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">override int Apache.Ignite.Core.Cache.Affinity.AffinityKey.GetHashCode </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. </dd></dl>

</div>
</div>
<a class="anchor" id="a158e0414852bf14e2b4cebae82a300b3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool Apache.Ignite.Core.Cache.Affinity.AffinityKey.operator!= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html">AffinityKey</a>&#160;</td>
          <td class="paramname"><em>left</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html">AffinityKey</a>&#160;</td>
          <td class="paramname"><em>right</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">left</td><td>The left.</td></tr>
    <tr><td class="paramname">right</td><td>The right.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result of the operator. </dd></dl>

</div>
</div>
<a class="anchor" id="abdaa22714d57b8abd560586f11e8cab6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool Apache.Ignite.Core.Cache.Affinity.AffinityKey.operator== </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html">AffinityKey</a>&#160;</td>
          <td class="paramname"><em>left</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html">AffinityKey</a>&#160;</td>
          <td class="paramname"><em>right</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">left</td><td>The left.</td></tr>
    <tr><td class="paramname">right</td><td>The right.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result of the operator. </dd></dl>

</div>
</div>
<a class="anchor" id="ae9f66781f3e4fdd4a0cea58b61a82130"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Apache.Ignite.Core.Cache.Affinity.AffinityKey.WriteBinary </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_binary_1_1_i_binary_writer.html">IBinaryWriter</a>&#160;</td>
          <td class="paramname"><em>writer</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">writer</td><td>Writer.</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Property Documentation</h2>
<a class="anchor" id="a3a0fb2ea36172a152301ae6386b22c2e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">object Apache.Ignite.Core.Cache.Affinity.AffinityKey.Affinity</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="abbabb99b83324f9d0ad8bbec13d961de"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">object Apache.Ignite.Core.Cache.Affinity.AffinityKey.Key</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespace_apache.html">Apache</a></li><li class="navelem"><a class="el" href="namespace_apache_1_1_ignite.html">Ignite</a></li><li class="navelem"><a class="el" href="namespace_apache_1_1_ignite_1_1_core.html">Core</a></li><li class="navelem"><a class="el" href="namespace_apache_1_1_ignite_1_1_core_1_1_cache.html">Cache</a></li><li class="navelem"><a class="el" href="namespace_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity.html">Affinity</a></li><li class="navelem"><a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html">AffinityKey</a></li>
    <li class="footer">Generated on Wed May 18 2016 16:44:12 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>
