/// <summary> /// Initializes a new instance of the <see cref="TokenizerState<T>"/> class. /// </summary> /// <param name="instance">The instance.</param> /// <param name="definition">The definition.</param> /// <param name="args">The args.</param> /// <param name="forCreate">if set to <c>true</c> [for create].</param> /// <remarks>Calls <see cref="ISupportInitialize.BeginInit"/> if the instance implements <see cref="ISupportInitialize"/></remarks> public TokenizerState(T instance, TokenizerDefinition definition, TokenizerArgs args, bool forCreate) { if (instance == null) { throw new ArgumentNullException("instance"); } else if (definition == null) { throw new ArgumentNullException("definition"); } else if (args == null) { throw new ArgumentNullException("args"); } _instance = instance; _definition = definition; _args = args; if (forCreate) { _init = instance as ITokenizerInitialize; if (_init != null) { TokenizerEventArgs e = new TokenizerEventArgs(); e.Context = args.Context; } } }
/// <summary> /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. /// </summary> /// <remarks>Calls <see cref="ISupportInitialize.EndInit"/> if the instance implements <see cref="ISupportInitialize"/></remarks> public void Dispose() { ITokenizerInitialize init = _init; if (init != null) { _init = null; TokenizerEventArgs e = new TokenizerEventArgs(); e.Context = _args.Context; init.OnEndInitialize(e); } }