﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.7.5/dotnetdoc/api/Apache.Ignite.Core.Lifecycle.html" />

<META NAME="ROBOTS" CONTENT="NOINDEX">

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Namespace Apache.Ignite.Core.Lifecycle
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Namespace Apache.Ignite.Core.Lifecycle
   | 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.Lifecycle">
  
  <h1 id="Apache_Ignite_Core_Lifecycle" data-uid="Apache.Ignite.Core.Lifecycle" class="text-break">Namespace Apache.Ignite.Core.Lifecycle
  </h1>
  <div class="markdown level0 summary"></div>
  <div class="markdown level0 conceptual"></div>
  <div class="markdown level0 remarks"></div>
    <h3 id="classes">Classes
  </h3>
      <h4><a class="xref" href="Apache.Ignite.Core.Lifecycle.ClientReconnectEventArgs.html">ClientReconnectEventArgs</a></h4>
      <section><p>Contains client reconnect event data.</p>
</section>
    <h3 id="interfaces">Interfaces
  </h3>
      <h4><a class="xref" href="Apache.Ignite.Core.Lifecycle.ILifecycleHandler.html">ILifecycleHandler</a></h4>
      <section><p>Handles lifecycle events defined in <a class="xref" href="Apache.Ignite.Core.Lifecycle.LifecycleEventType.html">LifecycleEventType</a>.
Use this interface whenever you need to plug some custom logic before or after
Ignite startup and stopping routines.
<p>
There are four events you can react to:
<ul><li>BeforeNodeStartInvoked before Ignite startup routine is initiated. Note that Ignite 
        is not available during this event, therefore if you injected an Ignite instance 
        via <a class="xref" href="Apache.Ignite.Core.Resource.InstanceResourceAttribute.html">InstanceResourceAttribute</a> attribute, you cannot 
        use it yet.</li><li>AfterNodeStartInvoked right after Ignite has started. At this point, if you injected
        an Ignite instance via <a class="xref" href="Apache.Ignite.Core.Resource.InstanceResourceAttribute.html">InstanceResourceAttribute</a> attribute, 
        you can start using it.</li><li>BeforeNodeStopInvoked right before Ignite stop routine is initiated. Ignite is still 
        available at this stage, so if you injected an Ignite instance via 
<a class="xref" href="Apache.Ignite.Core.Resource.InstanceResourceAttribute.html">InstanceResourceAttribute</a> attribute, you can use it.
</li><li>AfterNodeStopInvoked right after Ignite has stopped. Note that Ignite is not available 
during this event.</li></ul></p>
</section>
    <h3 id="enums">Enums
  </h3>
      <h4><a class="xref" href="Apache.Ignite.Core.Lifecycle.LifecycleEventType.html">LifecycleEventType</a></h4>
      <section><p>Ignite lifecycle event types. These events are used to notify lifecycle beans
about changes in Ignite lifecycle state.
<p>
For more information and detailed examples refer to <a class="xref" href="Apache.Ignite.Core.Lifecycle.ILifecycleHandler.html">ILifecycleHandler</a>
documentation.</p>
</section>
</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 - 2018 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>
