﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
<!-- Yandex.Metrika counter -->
    <script type="text/javascript" >
      (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
      m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
      (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
    
      ym(72949126, "init", {
           clickmap:true,
           trackLinks:true,
           accurateTrackBounce:true,
           webvisor:true
      });
    </script>
    <noscript><div><img src="https://mc.yandex.ru/watch/72949126" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
    <!-- /Yandex.Metrika counter -->
<script type='text/javascript'>
    window.__lo_site_id = 284467;
    
      (function() {
        var wa = document.createElement('script'); wa.type = 'text/javascript'; wa.async = true;
        wa.src = 'https://d10lpsik1i8c69.cloudfront.net/w.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wa, s);
        })();
      </script>
<link rel="canonical" href="https://ignite.apache.org/releases/latest/dotnetdoc/api/Apache.Ignite.Core.Client.IgniteClientConfigurationSection.html" />

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class IgniteClientConfigurationSection
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Class IgniteClientConfigurationSection
   | 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.Client.IgniteClientConfigurationSection">
  
  
  <h1 id="Apache_Ignite_Core_Client_IgniteClientConfigurationSection" data-uid="Apache.Ignite.Core.Client.IgniteClientConfigurationSection" class="text-break">Class IgniteClientConfigurationSection
  </h1>
  <div class="markdown level0 summary"><p>Ignite configuration section for app.config and web.config files.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><span class="xref">System.Object</span></div>
    <div class="level1"><span class="xref">System.Configuration.ConfigurationElement</span></div>
    <div class="level2"><span class="xref">System.Configuration.ConfigurationSection</span></div>
    <div class="level3"><span class="xref">IgniteClientConfigurationSection</span></div>
  </div>
  <div class="inheritedMembers">
    <h5>Inherited Members</h5>
    <div>
      <span class="xref">System.Configuration.ConfigurationSection.GetRuntimeObject()</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationSection.IsModified()</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationSection.ResetModified()</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationSection.ShouldSerializePropertyInTargetVersion(System.Configuration.ConfigurationProperty, System.String, System.Runtime.Versioning.FrameworkName, System.Configuration.ConfigurationElement)</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationSection.ShouldSerializeElementInTargetVersion(System.Configuration.ConfigurationElement, System.String, System.Runtime.Versioning.FrameworkName)</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationSection.ShouldSerializeSectionInTargetVersion(System.Runtime.Versioning.FrameworkName)</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationSection.SectionInformation</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.Init()</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.IsReadOnly()</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.SetReadOnly()</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.ListErrors(System.Collections.IList)</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.InitializeDefault()</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.Reset(System.Configuration.ConfigurationElement)</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.Equals(System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.GetHashCode()</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.SetPropertyValue(System.Configuration.ConfigurationProperty, System.Object, System.Boolean)</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.Unmerge(System.Configuration.ConfigurationElement, System.Configuration.ConfigurationElement, System.Configuration.ConfigurationSaveMode)</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.SerializeToXmlElement(System.Xml.XmlWriter, System.String)</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.SerializeElement(System.Xml.XmlWriter, System.Boolean)</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.DeserializeElement(System.Xml.XmlReader, System.Boolean)</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.OnRequiredPropertyNotFound(System.String)</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.PostDeserialize()</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.PreSerialize(System.Xml.XmlWriter)</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.OnDeserializeUnrecognizedAttribute(System.String, System.String)</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.OnDeserializeUnrecognizedElement(System.String, System.Xml.XmlReader)</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.GetTransformedTypeString(System.String)</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.GetTransformedAssemblyString(System.String)</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.LockAttributes</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.LockAllAttributesExcept</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.LockElements</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.LockAllElementsExcept</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.LockItem</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.Item[System.Configuration.ConfigurationProperty]</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.Item[System.String]</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.Properties</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.ElementInformation</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.EvaluationContext</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.ElementProperty</span>
    </div>
    <div>
      <span class="xref">System.Configuration.ConfigurationElement.CurrentConfiguration</span>
    </div>
    <div>
      <span class="xref">System.Object.ToString()</span>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.GetType()</span>
    </div>
    <div>
      <span class="xref">System.Object.MemberwiseClone()</span>
    </div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="Apache.Ignite.Core.Client.html">Apache.Ignite.Core.Client</a></h6>
  <h6><strong>Assembly</strong>: Apache.Ignite.Core.dll</h6>
  <h5 id="Apache_Ignite_Core_Client_IgniteClientConfigurationSection_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public class IgniteClientConfigurationSection : ConfigurationSection</code></pre>
  </div>
  <h3 id="properties">Properties
  </h3>
  <a id="Apache_Ignite_Core_Client_IgniteClientConfigurationSection_IgniteClientConfiguration_" data-uid="Apache.Ignite.Core.Client.IgniteClientConfigurationSection.IgniteClientConfiguration*"></a>
  <h4 id="Apache_Ignite_Core_Client_IgniteClientConfigurationSection_IgniteClientConfiguration" data-uid="Apache.Ignite.Core.Client.IgniteClientConfigurationSection.IgniteClientConfiguration">IgniteClientConfiguration</h4>
  <div class="markdown level1 summary"><p>Gets the Ignite client configuration.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public IgniteClientConfiguration IgniteClientConfiguration { 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.Client.IgniteClientConfiguration.html">IgniteClientConfiguration</a></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
  </h3>
  <a id="Apache_Ignite_Core_Client_IgniteClientConfigurationSection_DeserializeSection_" data-uid="Apache.Ignite.Core.Client.IgniteClientConfigurationSection.DeserializeSection*"></a>
  <h4 id="Apache_Ignite_Core_Client_IgniteClientConfigurationSection_DeserializeSection_System_Xml_XmlReader_" data-uid="Apache.Ignite.Core.Client.IgniteClientConfigurationSection.DeserializeSection(System.Xml.XmlReader)">DeserializeSection(XmlReader)</h4>
  <div class="markdown level1 summary"><p>Reads XML from the configuration file.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">protected override void DeserializeSection(XmlReader reader)</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.Xml.XmlReader</span></td>
        <td><span class="parametername">reader</span></td>
        <td><p>The reader object, which reads from the configuration file.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="overrides">Overrides</h5>
  <div><span class="xref">System.Configuration.ConfigurationSection.DeserializeSection(System.Xml.XmlReader)</span></div>
  <a id="Apache_Ignite_Core_Client_IgniteClientConfigurationSection_SerializeSection_" data-uid="Apache.Ignite.Core.Client.IgniteClientConfigurationSection.SerializeSection*"></a>
  <h4 id="Apache_Ignite_Core_Client_IgniteClientConfigurationSection_SerializeSection_System_Configuration_ConfigurationElement_System_String_System_Configuration_ConfigurationSaveMode_" data-uid="Apache.Ignite.Core.Client.IgniteClientConfigurationSection.SerializeSection(System.Configuration.ConfigurationElement,System.String,System.Configuration.ConfigurationSaveMode)">SerializeSection(ConfigurationElement, String, ConfigurationSaveMode)</h4>
  <div class="markdown level1 summary"><p>Creates an XML string containing an unmerged view of the <span class="xref">System.Configuration.ConfigurationSection</span> 
object as a single section to write to a file.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">protected override string SerializeSection(ConfigurationElement parentElement, string name, ConfigurationSaveMode saveMode)</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.Configuration.ConfigurationElement</span></td>
        <td><span class="parametername">parentElement</span></td>
        <td><p>The <span class="xref">System.Configuration.ConfigurationElement</span> 
instance to use as the parent when performing the un-merge.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">name</span></td>
        <td><p>The name of the section to create.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Configuration.ConfigurationSaveMode</span></td>
        <td><span class="parametername">saveMode</span></td>
        <td><p>The <span class="xref">System.Configuration.ConfigurationSaveMode</span> instance 
to use when writing to a string.</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.String</span></td>
        <td><p>An XML string containing an unmerged view of the <span class="xref">System.Configuration.ConfigurationSection</span> object.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="overrides">Overrides</h5>
  <div><span class="xref">System.Configuration.ConfigurationSection.SerializeSection(System.Configuration.ConfigurationElement, System.String, System.Configuration.ConfigurationSaveMode)</span></div>
</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>
