/// <summary>
        /// Create the template output
        /// </summary>
        public virtual string TransformText()
        {
            this.Write("\r\nusing global::System;\r\nusing global::System.Collections.Generic;\r\nusing global:" +
                       ":LamestWebserver.WebServices;\r\nusing global::LamestWebserver;\r\nusing global::Lam" +
                       "estWebserver.Core;\r\nusing global::");

            #line 12 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(AssemblyNameSpace));

            #line default
            #line hidden
            this.Write(";\r\n\r\nnamespace ");

            #line 14 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(Namespace));

            #line default
            #line hidden
            this.Write("\r\n{\r\n    public class ");

            #line 16 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
            this.Write("LocalWebServiceGenImpl : ");

            #line 16 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
            this.Write("\r\n\t{\r\n\t\tprivate readonly WebServiceHandler _webServiceHandler;\r\n\r\n\t\t");

            #line 20 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
            if (ClassType.GetConstructor(new Type[0]) != null)
            {
            #line default
            #line hidden
                this.Write("\t\tpublic ");

            #line 21 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                this.Write(@"LocalWebServiceGenImpl(WebServiceHandler webServiceHandler) : base()
		{
			if (webServiceHandler == null)
				throw new NullReferenceException(""webServiceHandler"");
			
			_webServiceHandler = webServiceHandler;
			LamestWebserver.Core.Logger.LogInformation("""            );

            #line 27 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                this.Write("LocalWebServiceGenImpl has been initialized.\");\r\n\t\t}\r\n\t\t");

            #line 29 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
            }

            #line default
            #line hidden
            this.Write("\r\n\t\t");

            #line 31 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
            foreach (var method in ClassType.GetMethods())
            {
                if (method.GetCustomAttributes(typeof(WebServiceIgnore), true).Any())
                {
                    continue;
                }

                if (method.IsPublic && !method.IsAbstract && !method.IsStatic && !method.IsFinal)
                {
                    if (!method.IsVirtual)
                    {
                        if (method.DeclaringType == typeof(System.Object))
                        {
                            continue;                     // Don't trigger for System.Object.GetType()
                        }
                        else
                        {
                            throw new IncompatibleTypeException($"The Type '{ClassType.Namespace}.{ClassType.Name}' contains a non-virtual public method '{method.Name}'. Mark this method with the {nameof(WebServiceIgnore)} attribute to ignore it.");
                        }
                    }

                    if (method.IsGenericMethod || method.IsGenericMethodDefinition)
                    {
                        throw new IncompatibleTypeException($"LamestWebserver WebServices currently does not support generic methods. The Type '{ClassType.Namespace}.{ClassType.Name}' contains a public generic method '{method.Name}'. Mark this method with the {nameof(WebServiceIgnore)} attribute to ignore it.");
                    }


            #line default
            #line hidden
                    this.Write("\r\n\t\t\tpublic override ");

            #line 50 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    if (method.ReturnType == typeof(void))
                    {
            #line default
            #line hidden
                        this.Write(" void ");

            #line 50 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    }
                    else
                    {
            #line default
            #line hidden
                        this.Write(" ");

            #line 50 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(method.ReturnType));

            #line default
            #line hidden
                        this.Write(" ");

            #line 50 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write(" ");

            #line 50 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(method.Name));

            #line default
            #line hidden
                    this.Write("(\r\n\t\t\t");

            #line 51 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    System.Reflection.ParameterInfo[] parameters = method.GetParameters().ToArray();
                    for (int i = 0; i < parameters.Length; i++)
                    {
            #line default
            #line hidden
                        this.Write("\t\t\t\t");

            #line 54 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(parameters[i].ParameterType.Name));

            #line default
            #line hidden
                        this.Write(" _p");

            #line 54 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(i));

            #line default
            #line hidden
                        this.Write(" ");

            #line 54 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        if (i + 1 < parameters.Length)
                        {
            #line default
            #line hidden
                            this.Write(", ");

            #line 54 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        }

            #line default
            #line hidden
                        this.Write("\t\t\t");

            #line 55 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write("\t\t\t)\r\n\t\t\t{\r\n\t\t\t\ttry \r\n\t\t\t\t{\r\n\t\t\t\t\tLamestWebserver.Core.Logger.LogTrace(\"Calling m" +
                               "ethod \'");

            #line 60 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                    this.Write("LocalWebServiceGenImpl.");

            #line 60 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(method.Name));

            #line default
            #line hidden
                    this.Write("\'.\");\r\n\r\n\t\t\t\t\t");

            #line 62 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    if (method.ReturnType != typeof(void))
                    {
            #line default
            #line hidden
                        this.Write(" var x = ");

            #line 62 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write("\t\t\t\t\tbase.");

            #line 63 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(method.Name));

            #line default
            #line hidden
                    this.Write("(\r\n\t\t\t\t\t");

            #line 64 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    for (int i = 0; i < parameters.Length; i++)
                    {
            #line default
            #line hidden
                        this.Write("\t\t\t\t\t\t_p");

            #line 66 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(i));

            #line default
            #line hidden
                        this.Write(" ");

            #line 66 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        if (i + 1 < parameters.Length)
                        {
            #line default
            #line hidden
                            this.Write(", ");

            #line 66 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        }

            #line default
            #line hidden
                        this.Write("\t\t\t\t\t");

            #line 67 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write("\t\t\t\t\t);\r\n\r\n\t\t\t\t\t");

            #line 70 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    if (method.ReturnType != typeof(void))
                    {
            #line default
            #line hidden
                        this.Write("\t\t\t\t\tLamestWebserver.Core.Logger.LogTrace(\"Response from method \'");

            #line 72 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                        this.Write("LocalWebServiceGenImpl.");

            #line 72 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(method.Name));

            #line default
            #line hidden
                        this.Write("\' has been received.\");\r\n\t\t\t\t\t");

            #line 73 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    }
                    else
                    {
            #line default
            #line hidden
                        this.Write("\t\t\t\t\tLamestWebserver.Core.Logger.LogTrace(\"Method \'");

            #line 76 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                        this.Write("LocalWebServiceGenImpl.");

            #line 76 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(method.Name));

            #line default
            #line hidden
                        this.Write("\' has been executed.\");\r\n\t\t\t\t\t");

            #line 77 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write("\r\n\t\t\t\t\t");

            #line 79 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    if (method.ReturnType != typeof(void))
                    {
            #line default
            #line hidden
                        this.Write(" return x; ");

            #line 79 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write("\t\t\t\t}\r\n\t\t\t\tcatch (Exception e)\r\n\t\t\t\t{\r\n\t\t\t\t\tLamestWebserver.Core.Logger.LogError(" +
                               "\"Exception in Webservice \'");

            #line 83 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                    this.Write("LocalWebServiceGenImpl.");

            #line 83 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(method.Name));

            #line default
            #line hidden
                    this.Write("\'.\\n\" + e.Message);\r\n\t\t\t\t\tthrow new LamestWebserver.WebServices.RemoteException(\"" +
                               "Exception in Webservice \'");

            #line 84 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                    this.Write("LocalWebServiceGenImpl.");

            #line 84 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(method.Name));

            #line default
            #line hidden
                    this.Write("\'\", e);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tpublic WebServiceResponse __RESPONDER_WEBSERVICE__");

            #line 88 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(method.Name));

            #line default
            #line hidden
                    this.Write("(\r\n\t\t\t");

            #line 89 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    for (int i = 0; i < parameters.Length; i++)
                    {
            #line default
            #line hidden
                        this.Write("\t\t\t\t");

            #line 91 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(parameters[i].ParameterType.Name));

            #line default
            #line hidden
                        this.Write(" _p");

            #line 91 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(i));

            #line default
            #line hidden
                        this.Write(" ");

            #line 91 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        if (i + 1 < parameters.Length)
                        {
            #line default
            #line hidden
                            this.Write(", ");

            #line 91 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        }

            #line default
            #line hidden
                        this.Write("\t\t\t");

            #line 92 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write("\t\t\t)\r\n\t\t\t{\r\n\t\t\t\tWebServiceResponse ret = null;\r\n\r\n\t\t\t\ttry\r\n\t\t\t\t{\r\n\t\t\t\t\t");

            #line 99 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    if (method.ReturnType != typeof(void))
                    {
            #line default
            #line hidden
                        this.Write(" var x = ");

            #line 99 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write("\r\n\t\t\t\t\tthis.");

            #line 101 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(method.Name));

            #line default
            #line hidden
                    this.Write("(\r\n\t\t\t\t\t");

            #line 102 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    for (int i = 0; i < parameters.Length; i++)
                    {
            #line default
            #line hidden
                        this.Write("\t\t\t\t\t\t_p");

            #line 104 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(i));

            #line default
            #line hidden
                        this.Write(" ");

            #line 104 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        if (i + 1 < parameters.Length)
                        {
            #line default
            #line hidden
                            this.Write(", ");

            #line 104 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        }

            #line default
            #line hidden
                        this.Write("\t\t\t\t\t");

            #line 105 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write("\t\t\t\t\t);\r\n\r\n\t\t\t\t\t");

            #line 108 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    if (method.ReturnType != typeof(void))
                    {
            #line default
            #line hidden
                        this.Write(" \r\n\t\t\t\t\t\tret = WebServiceResponse.Return<");

            #line 110 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(method.ReturnType));

            #line default
            #line hidden
                        this.Write(">(x);\r\n\t\t\t\t\t");

            #line 111 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    }
                    else
                    {
            #line default
            #line hidden
                        this.Write("\t\t\t\t\t\tret = WebServiceResponse.Return();\r\n\t\t\t\t\t");

            #line 115 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write("\t\t\t\t}\r\n\t\t\t\tcatch (Exception e)\r\n\t\t\t\t{\r\n\t\t\t\t\tret = WebServiceResponse.Exception(e)" +
                               ";\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn ret;\r\n\t\t\t}\r\n\r\n\t\t");

            #line 125 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                }
            }

            #line default
            #line hidden
            this.Write("\r\n\t\t");

            #line 128 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
            foreach (var property in ClassType.GetProperties())
            {
                if (property.GetCustomAttributes(typeof(WebServiceIgnore), true).Any())
                {
                    continue;
                }

                bool getter = property.GetMethod != null && property.GetMethod.IsPublic && !property.GetMethod.IsAbstract && !property.GetMethod.IsStatic;
                bool setter = property.SetMethod != null && property.SetMethod.IsPublic && !property.SetMethod.IsAbstract && !property.SetMethod.IsStatic;

                if (getter && !property.GetMethod.IsVirtual)
                {
                    throw new IncompatibleTypeException($"The Type '{ClassType.Namespace}.{ClassType.Name}' contains a non-virtual public property get accessor for '{property.Name}'. Mark this property with the {nameof(WebServiceIgnore)} attribute to ignore it.");
                }

                if (setter && !property.SetMethod.IsVirtual)
                {
                    throw new IncompatibleTypeException($"The Type '{ClassType.Namespace}.{ClassType.Name}' contains a non-virtual public property set accessor for '{property.Name}'. Mark this property with the {nameof(WebServiceIgnore)} attribute to ignore it.");
                }

                if (getter || setter)
                {
            #line default
            #line hidden
                    this.Write("\t\t\t\tpublic override ");

            #line 144 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(property.PropertyType));

            #line default
            #line hidden
                    this.Write(" ");

            #line 144 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                    this.Write("\r\n\t\t\t\t{\r\n\t\t\t\t");

            #line 146 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    if (getter)
                    {
            #line default
            #line hidden
                        this.Write("\t\t\t\t\tget\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tLamestWebserver.Core.Logger.LogTrace" +
                                   "(\"Getting property \'");

            #line 152 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                        this.Write("LocalWebServiceGenImpl.");

            #line 152 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write("\'.\");\r\n\r\n\t\t\t\t\t\t\tvar ret = base.");

            #line 154 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write(";\r\n\r\n\t\t\t\t\t\t\tLamestWebserver.Core.Logger.LogTrace(\"Response from property \'");

            #line 156 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                        this.Write("LocalWebServiceGenImpl.");

            #line 156 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write("\' has been received.\");\r\n\r\n\t\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcatch(Exception e)\r" +
                                   "\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tLamestWebserver.Core.Logger.LogError(\"Exception in Webservice \'" +
                                   "");

            #line 162 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                        this.Write("LocalWebServiceGenImpl.");

            #line 162 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write(".get\'.\\n\" + e.Message);\r\n\t\t\t\t\t\t\tthrow new LamestWebserver.WebServices.RemoteExcep" +
                                   "tion(\"Exception in Webservice \'");

            #line 163 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                        this.Write("LocalWebServiceGenImpl.");

            #line 163 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write(".get\'\", e);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t");

            #line 166 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    }

                    if (setter)
                    {
            #line default
            #line hidden
                        this.Write("\t\t\t\t\tset\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tLamestWebserver.Core.Logger.LogTrace" +
                                   "(\"Setting property \'");

            #line 174 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                        this.Write("LocalWebServiceGenImpl.");

            #line 174 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write("\'.\");\r\n\r\n\t\t\t\t\t\t\tbase.");

            #line 176 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write(" = value;\r\n\r\n\t\t\t\t\t\t\tLamestWebserver.Core.Logger.LogTrace(\"Property \'");

            #line 178 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                        this.Write("LocalWebServiceGenImpl.");

            #line 178 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write("\' has been set.\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcatch(Exception e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tLamestWebs" +
                                   "erver.Core.Logger.LogError(\"Exception in Webservice \'");

            #line 182 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                        this.Write("LocalWebServiceGenImpl.");

            #line 182 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write(".set\'\", e);\r\n\t\t\t\t\t\t\tthrow new LamestWebserver.WebServices.RemoteException(\"Except" +
                                   "ion in Webservice \'");

            #line 183 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                        this.Write("LocalWebServiceGenImpl.");

            #line 183 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write(".set\'.\\n\" + e.Message);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t");

            #line 186 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write("\t\t\t\t}\r\n\r\n\t\t\t\t");

            #line 189 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    if (getter)
                    {
            #line default
            #line hidden
                        this.Write("\t\t\t\t\tpublic WebServiceResponse __RESPONDER_WEBSERVICE__PROPERTY_GET__");

            #line 191 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write("()\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tWebServiceResponse ret = null;\r\n\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tva" +
                                   "r x = this.");

            #line 197 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write(";\r\n\r\n\t\t\t\t\t\t\tret = WebServiceResponse.Return<");

            #line 199 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.PropertyType));

            #line default
            #line hidden
                        this.Write(">(x);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcatch (Exception e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tret = WebServiceRespon" +
                                   "se.Exception(e);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn ret;\r\n\t\t\t\t\t}\r\n\t\t\t\t");

            #line 208 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write("\r\n\t\t\t\t");

            #line 210 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    if (setter)
                    {
            #line default
            #line hidden
                        this.Write("\t\t\t\t\tpublic WebServiceResponse __RESPONDER_WEBSERVICE__PROPERTY_SET__");

            #line 212 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write("(");

            #line 212 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.PropertyType));

            #line default
            #line hidden
                        this.Write(" _p0)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tWebServiceResponse ret = null;\r\n\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t" +
                                   "\tthis.");

            #line 218 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write(" = _p0;\r\n\r\n\t\t\t\t\t\t\tret = WebServiceResponse.Return();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcatch (Excep" +
                                   "tion e)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tret = WebServiceResponse.Exception(e);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t" +
                                   "\t\treturn ret;\r\n\t\t\t\t\t}\r\n\t\t\t\t");

            #line 229 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write("\r\n\t\t\t");

            #line 231 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
                }
            }

            #line default
            #line hidden
            this.Write("\r\n\t\t");

            #line 234 "C:\git\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\LocalWebServiceTemplate.tt"
            foreach (var field in ClassType.GetFields())
            {
                if (field.GetCustomAttributes(typeof(WebServiceIgnore), true).Any())
                {
                    continue;
                }

                if (field.IsPublic && !field.IsStatic)
                {
                    throw new IncompatibleTypeException($"The Type '{ClassType.Namespace}.{ClassType.Name}' contains a public non-static field '{field.Name}'. Mark this field with the {nameof(WebServiceIgnore)} attribute to ignore it.");
                }
            }

            #line default
            #line hidden
            this.Write("\t}\r\n}\r\n\r\n");
            return(this.GenerationEnvironment.ToString());
        }
        /// <summary>
        /// Create the template output
        /// </summary>
        public virtual string TransformText()
        {
            this.Write("\r\nusing global::System;\r\nusing global::System.Collections.Generic;\r\nusing global:" +
                       ":LamestWebserver.WebServices;\r\nusing global::LamestWebserver;\r\nusing global::Lam" +
                       "estWebserver.Core;\r\nusing global::");

            #line 12 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(AssemblyNameSpace));

            #line default
            #line hidden
            this.Write(";\r\n\r\nnamespace ");

            #line 14 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(Namespace));

            #line default
            #line hidden
            this.Write("\r\n{\r\n    public class ");

            #line 16 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
            this.Write("RequesterWebServiceImpl : ");

            #line 16 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
            this.Write("\r\n\t{\r\n\t\tprivate readonly WebServiceHandler _webServiceHandler;\r\n\r\n\t\t");

            #line 20 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
            if (ClassType.GetConstructor(new Type[0]) != null)
            {
            #line default
            #line hidden
                this.Write("\t\tpublic ");

            #line 21 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                this.Write(@"RequesterWebServiceImpl(WebServiceHandler webServiceHandler) : base()
		{
			if (webServiceHandler == null)
				throw new NullReferenceException(""webServiceHandler"");

			_webServiceHandler = webServiceHandler;
			LamestWebserver.Core.Logger.LogInformation("""            );

            #line 27 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                this.Write("RequesterWebServiceImpl has been initialized.\");\r\n\t\t}\r\n\t\t");

            #line 29 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
            }

            #line default
            #line hidden
            this.Write("\r\n\t\t");

            #line 31 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
            foreach (var method in ClassType.GetMethods())
            {
                if (method.GetCustomAttributes(typeof(WebServiceIgnore), true).Any())
                {
                    continue;
                }

                if (method.IsPublic && !method.IsAbstract && !method.IsStatic && !method.IsFinal)
                {
                    if (!method.IsVirtual)
                    {
                        if (method.DeclaringType == typeof(System.Object))
                        {
                            continue;                     // Don't trigger for System.Object.GetType()
                        }
                        else
                        {
                            throw new IncompatibleTypeException($"The Type '{ClassType.Namespace}.{ClassType.Name}' contains a non-virtual public method '{method.Name}'. Mark this method with the {nameof(WebServiceIgnore)} attribute to ignore it.");
                        }
                    }

                    if (method.IsGenericMethod || method.IsGenericMethodDefinition)
                    {
                        throw new IncompatibleTypeException($"LamestWebserver WebServices currently does not support generic methods. The Type '{ClassType.Namespace}.{ClassType.Name}' contains a public generic method '{method.Name}'. Mark this method with the {nameof(WebServiceIgnore)} attribute to ignore it.");
                    }


            #line default
            #line hidden
                    this.Write("\r\n\t\t\tpublic override ");

            #line 50 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    if (method.ReturnType == typeof(void))
                    {
            #line default
            #line hidden
                        this.Write(" void ");

            #line 50 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    }
                    else
                    {
            #line default
            #line hidden
                        this.Write(" ");

            #line 50 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(method.ReturnType));

            #line default
            #line hidden
                        this.Write(" ");

            #line 50 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write(" ");

            #line 50 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(method.Name));

            #line default
            #line hidden
                    this.Write("(\r\n\t\t\t");

            #line 51 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    System.Reflection.ParameterInfo[] parameters = method.GetParameters().ToArray();
                    for (int i = 0; i < parameters.Length; i++)
                    {
            #line default
            #line hidden
                        this.Write("\t\t\t\t");

            #line 53 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(parameters[i].ParameterType.Name));

            #line default
            #line hidden
                        this.Write(" _p");

            #line 53 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(i));

            #line default
            #line hidden
                        this.Write(" ");

            #line 53 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        if (i + 1 < parameters.Length)
                        {
            #line default
            #line hidden
                            this.Write(", ");

            #line 53 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        }

            #line default
            #line hidden
                        this.Write("\t\t\t");

            #line 54 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write("\t\t\t)\r\n\t\t\t{\r\n\t\t\t\ttry\r\n\t\t\t\t{\r\n\t\t\t\t\tLamestWebserver.Core.Logger.LogTrace(\"Requesting" +
                               " method \'");

            #line 59 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                    this.Write("RequesterWebServiceImpl.");

            #line 59 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(method.Name));

            #line default
            #line hidden
                    this.Write("\'.\");\r\n\r\n\t\t\t\t\tvar request = WebServiceRequest.Request<");

            #line 61 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                    this.Write(">\r\n\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\"__RESPONDER_WEBSERVICE__");

            #line 63 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(method.Name));

            #line default
            #line hidden
                    this.Write("\", \r\n\t\t\t\t\t\t\tnew Type[] {\r\n\t\t\t\t\t\t\t\t");

            #line 65 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    foreach (var p in parameters)
                    {
            #line default
            #line hidden
                        this.Write(" \r\n\t\t\t\t\t\t\t\t\ttypeof(");

            #line 67 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(p.ParameterType.Name));

            #line default
            #line hidden
                        this.Write("), \r\n\t\t\t\t\t\t\t\t");

            #line 68 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write("\t\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t");

            #line 70 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    if (parameters.Any())
                    {
            #line default
            #line hidden
                        this.Write(" , ");

            #line 70 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write(" \r\n\t\t\t\t\t\t\t\t");

            #line 71 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    for (int i = 0; i < parameters.Length; i++)
                    {
            #line default
            #line hidden
                        this.Write("\t\t\t\t\t\t\t\t\t_p");

            #line 73 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(i));

            #line default
            #line hidden
                        this.Write(" \r\n\t\t\t\t\t\t\t\t\t");

            #line 74 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        if (i + 1 < parameters.Length)
                        {
            #line default
            #line hidden
                            this.Write(", ");

            #line 74 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        }
                    }

            #line default
            #line hidden
                    this.Write("\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\tvar response = _webServiceHandler.Request(request);\r\n\r\n\t\t\t\t\tswit" +
                               "ch (response.ReturnType)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcase EWebServiceReturnType.ReturnValue:\r" +
                               "\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t");

            #line 84 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    if (method.ReturnType == typeof(void))
                    {
            #line default
            #line hidden
                        this.Write(" \r\n\t\t\t\t\t\t\t\tthrow new IncompatibleTypeException(\"Method that should have returned " +
                                   "void returned a value.\"); \r\n\t\t\t\t\t\t\t");

            #line 87 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    }
                    else
                    {
            #line default
            #line hidden
                        this.Write("\t\t\t\t\t\t\t\treturn (");

            #line 90 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(method.ReturnType));

            #line default
            #line hidden
                        this.Write(")response.ReturnValue;\r\n\t\t\t\t\t\t\t");

            #line 91 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write("\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tcase EWebServiceReturnType.ReturnVoid:\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t");

            #line 96 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    if (method.ReturnType != typeof(void))
                    {
            #line default
            #line hidden
                        this.Write(" \r\n\t\t\t\t\t\t\t\tthrow new IncompatibleTypeException(\"Method that should have returned " +
                                   "a value returned void.\"); \r\n\t\t\t\t\t\t\t");

            #line 99 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    }
                    else
                    {
            #line default
            #line hidden
                        this.Write("\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t");

            #line 103 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write(@"						}

						case EWebServiceReturnType.ExceptionThrown:
						{
							if(response.ExceptionThrown == null)
								throw new NullReferenceException(""EWebServiceReturnType was 'ExceptionThrown', but no Exception was given."");

							throw response.ExceptionThrown;
						}

						default:
							throw new InvalidOperationException(""EWebServiceReturnType was invalid."");
					}
				}
				catch (Exception e)
				{
					LamestWebserver.Core.Logger.LogError(""Exception in Webservice '"                    );

            #line 120 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                    this.Write("RequesterWebServiceImpl.");

            #line 120 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(method.Name));

            #line default
            #line hidden
                    this.Write("\'.\\n\" + e.Message);\r\n\t\t\t\t\tthrow new LamestWebserver.WebServices.RemoteException(\"" +
                               "Exception in Webservice \'");

            #line 121 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                    this.Write("RequesterWebServiceImpl.");

            #line 121 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(method.Name));

            #line default
            #line hidden
                    this.Write("\'\", e);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t");

            #line 124 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                }
            }

            #line default
            #line hidden
            this.Write("\r\n\t\t");

            #line 127 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
            foreach (var property in ClassType.GetProperties())
            {
                if (property.GetCustomAttributes(typeof(WebServiceIgnore), true).Any())
                {
                    continue;
                }

                bool getter = property.GetMethod != null && property.GetMethod.IsPublic && !property.GetMethod.IsAbstract && !property.GetMethod.IsStatic;
                bool setter = property.SetMethod != null && property.SetMethod.IsPublic && !property.SetMethod.IsAbstract && !property.SetMethod.IsStatic;

                if (getter && !property.GetMethod.IsVirtual)
                {
                    throw new IncompatibleTypeException($"The Type '{ClassType.Namespace}.{ClassType.Name}' contains a non-virtual public property get accessor for '{property.Name}'. Mark this property with the {nameof(WebServiceIgnore)} attribute to ignore it.");
                }

                if (setter && !property.SetMethod.IsVirtual)
                {
                    throw new IncompatibleTypeException($"The Type '{ClassType.Namespace}.{ClassType.Name}' contains a non-virtual public property set accessor for '{property.Name}'. Mark this property with the {nameof(WebServiceIgnore)} attribute to ignore it.");
                }

                if (getter || setter)
                {
            #line default
            #line hidden
                    this.Write("\t\t\t\tpublic override ");

            #line 143 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(property.PropertyType));

            #line default
            #line hidden
                    this.Write(" ");

            #line 143 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                    this.Write("\r\n\t\t\t\t{\r\n\t\t\t\t");

            #line 145 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    if (getter)
                    {
            #line default
            #line hidden
                        this.Write("\t\t\t\t\tget\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tLamestWebserver.Core.Logger.LogTrace" +
                                   "(\"Requesting property \'");

            #line 151 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                        this.Write("RequesterWebServiceImpl.");

            #line 151 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write("\'.\");\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tvar request = WebServiceRequest.Request<");

            #line 153 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                        this.Write(">(\"__RESPONDER_WEBSERVICE__PROPERTY_GET__");

            #line 153 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write("\", new Type[0]);\r\n\t\t\t\t\t\t\tvar response = _webServiceHandler.Request(request);\r\n\r\n\t" +
                                   "\t\t\t\t\t\tswitch (response.ReturnType)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcase EWebServiceReturnType" +
                                   ".ReturnValue:\r\n\t\t\t\t\t\t\t\t\tLamestWebserver.Core.Logger.LogTrace(\"Response from prop" +
                                   "erty \'");

            #line 159 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                        this.Write("RequesterWebServiceImpl.");

            #line 159 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write("\' has been received.\");\r\n\t\t\t\t\t\t\t\t\treturn (");

            #line 160 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.PropertyType));

            #line default
            #line hidden
                        this.Write(@")response.ReturnValue;

								case EWebServiceReturnType.ReturnVoid:
									throw new IncompatibleTypeException(""Method that should have returned a value returned void."");

								case EWebServiceReturnType.ExceptionThrown:
								{
									if(response.ExceptionThrown == null)
										throw new NullReferenceException(""EWebServiceReturnType was 'ExceptionThrown', but no Exception was given."");

									throw response.ExceptionThrown;
								}

								default:
									throw new InvalidOperationException(""EWebServiceReturnType was invalid."");
							}
						}
						catch(Exception e)
						{
							LamestWebserver.Core.Logger.LogError(""Exception in Webservice '"                            );

            #line 179 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                        this.Write("RequesterWebServiceImpl.");

            #line 179 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write(".get\'.\\n\" + e.Message);\r\n\t\t\t\t\t\t\tthrow new LamestWebserver.WebServices.RemoteExcep" +
                                   "tion(\"Exception in Webservice \'");

            #line 180 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                        this.Write("RequesterWebServiceImpl.");

            #line 180 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write(".get\'\", e);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t");

            #line 183 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    }

                    if (setter)
                    {
            #line default
            #line hidden
                        this.Write("\t\t\t\t\tset\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttry\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tLamestWebserver.Core.Logger.LogTrace" +
                                   "(\"Requesting to set the property \'");

            #line 191 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                        this.Write("RequesterWebServiceImpl.");

            #line 191 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write("\'.\");\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tvar request = WebServiceRequest.Request<");

            #line 193 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                        this.Write(">(\"__RESPONDER_WEBSERVICE__PROPERTY_SET__");

            #line 193 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write("\", new Type[] { typeof(");

            #line 193 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.PropertyType));

            #line default
            #line hidden
                        this.Write(@") }, value);
							var response = _webServiceHandler.Request(request);

							switch (response.ReturnType)
							{
								case EWebServiceReturnType.ReturnValue:
									throw new IncompatibleTypeException(""Method that should have returned void returned a value."");

								case EWebServiceReturnType.ReturnVoid:
									LamestWebserver.Core.Logger.LogTrace(""Property '"                                    );

            #line 202 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                        this.Write("RequesterWebServiceImpl.");

            #line 202 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write(@"' has been set."");
									return;

								case EWebServiceReturnType.ExceptionThrown:
								{
									if(response.ExceptionThrown == null)
										throw new NullReferenceException(""EWebServiceReturnType was 'ExceptionThrown', but no Exception was given."");

									throw response.ExceptionThrown;
								}

								default:
									throw new InvalidOperationException(""EWebServiceReturnType was invalid."");
							}

						}
						catch(Exception e)
						{
							LamestWebserver.Core.Logger.LogError(""Exception in Webservice '"                            );

            #line 220 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                        this.Write("RequesterWebServiceImpl.");

            #line 220 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write(".set\'\", e);\r\n\t\t\t\t\t\t\tthrow new LamestWebserver.WebServices.RemoteException(\"Except" +
                                   "ion in Webservice \'");

            #line 221 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(ClassName));

            #line default
            #line hidden
                        this.Write("RequesterWebServiceImpl.");

            #line 221 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

            #line default
            #line hidden
                        this.Write(".set\'.\\n\" + e.Message);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t");

            #line 224 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                    }

            #line default
            #line hidden
                    this.Write("\t\t\t\t}\r\n\r\n\t\t\t");

            #line 227 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
                }
            }

            #line default
            #line hidden
            this.Write("\r\n\t\t");

            #line 230 "C:\Users\raine\source\repos\LamestWebserver\LamestWebserver\LamestWebserver\WebServices\Generators\RequesterWebServiceTemplate.tt"
            foreach (var field in ClassType.GetFields())
            {
                if (field.GetCustomAttributes(typeof(WebServiceIgnore), true).Any())
                {
                    continue;
                }

                if (field.IsPublic && !field.IsStatic)
                {
                    throw new IncompatibleTypeException($"The Type '{ClassType.Namespace}.{ClassType.Name}' contains a public non-static field '{field.Name}'. Mark this field with the {nameof(WebServiceIgnore)} attribute to ignore it.");
                }
            }

            #line default
            #line hidden
            this.Write("\t}\r\n}\r\n\r\n");
            return(this.GenerationEnvironment.ToString());
        }