private static void SetBuilderTable(ContainerBuilder builder, LuaContext context)
		{
			var b = new AutofacLuaBuilder(builder);
			var builderTable =
				LuaObject.FromTable(
					new Dictionary<LuaObject, LuaObject>()
						{
							{ "As", LuaObject.FromDelegate((Func<object, object, object>)(b.As)) },
							{ "RegisterGeneric", LuaObject.FromDelegate((Func<object, object>)(b.RegisterGeneric)) },
							{ "RegisterType", LuaObject.FromDelegate((Func<object, object>)(b.RegisterType)) },
							{ "RegisterModule", LuaObject.FromDelegate((Action<object>)(b.RegisterModule)) },
							{ "RegisterInstance", LuaObject.FromDelegate((Func<object, object>)(b.RegisterInstance)) },
							{ "Register", LuaObject.FromDelegate((Func<LuaFunction, object>)(b.Register)) },
							{ "InstancePerDependency", LuaObject.FromDelegate((Func<object, object>)(b.InstancePerDependency)) },
							{ "SingleInstance", LuaObject.FromDelegate((Func<object, object>)(b.SingleInstance)) },
						});
			context.SetGlobal("builder", builderTable);
		}
		private static void SetRefletionTable(ContainerBuilder builder, LuaContext context)
		{
			var b = new AutofacLuaReflection();
			var builderTable =
				LuaObject.FromTable(
					new Dictionary<LuaObject, LuaObject>()
						{
							{ "Activate", LuaObject.FromFunction(b.Activate) },
							{ "Resolve", LuaObject.FromDelegate((Func<IComponentContext, object, object>)b.Resolve) },
							{ "Invoke", LuaObject.FromFunction(b.Invoke) },
							{ "GetValue", LuaObject.FromFunction(b.GetValue) },
							{ "SetValue", LuaObject.FromFunction(b.SetValue) },
							{ "Type", LuaObject.FromDelegate((Func<object, object>)b.Type) },
							{ "TypeOf", LuaObject.FromDelegate((Func<object, object>)b.TypeOf) },
						});
			context.SetGlobal("reflection", builderTable);
		}