/// <summary>
		/// Stores the <see cref="FormState"/> of a particular <paramref name="form"/> in the <paramref name="context"/>.
		/// </summary>
		/// <param name="context">The <see cref="IMansionWebContext"/>.</param>
		/// <param name="form">The <see cref="Form"/> for which to store the state.</param>
		/// <param name="state">The <see cref="FormState"/> which to save.</param>
		public void StoreState(IMansionWebContext context, Form form, FormState state)
		{
			// validate arguments
			if (context == null)
				throw new ArgumentNullException("context");
			if (form == null)
				throw new ArgumentNullException("form");
			if (state == null)
				throw new ArgumentNullException("state");
			DoStoreState(context, form, state);
		}
		/// <summary>
		/// Stores the <see cref="FormState"/> of a particular <paramref name="form"/> in the <paramref name="context"/>.
		/// </summary>
		/// <param name="context">The <see cref="IMansionWebContext"/>.</param>
		/// <param name="form">The <see cref="Form"/> for which to store the state.</param>
		/// <param name="state">The <see cref="FormState"/> which to save.</param>
		protected abstract void DoStoreState(IMansionWebContext context, Form form, FormState state);