コード例 #1
0
        private void AppendPropertyInitializationFromHost(bool hasHost, T4ParameterDescription description)
        {
            if (!hasHost)
            {
                return;
            }
            AppendIndent();
            Result.AppendLine($"if (({description.PropertyNameString}ValueAcquired == false))");
            using (new CodeBlockCookie(this))
            {
                AppendIndent();
                Result.AppendLine(
                    "string parameterValue = this.Host.ResolveParameterValue(\"Property\"," +
                    $" \"PropertyDirectiveProcessor\", \"{description.PropertyNameString}\");");
                AppendIndent();
                Result.AppendLine("if ((string.IsNullOrEmpty(parameterValue) == false))");
                using (new CodeBlockCookie(this))
                {
                    AppendIndent();
                    Result.Append(
                        $"{T4TextTemplatingFQNs.TypeConverter} tc = {T4TextTemplatingFQNs.GetConverter}(typeof(");
                    description.AppendType(Result);
                    Result.AppendLine("));");
                    AppendIndent();
                    Result.AppendLine("if (((tc != null) ");
                    AppendIndent();
                    Result.Append(new string(' ', indentSize * 3));
                    Result.AppendLine("&& tc.CanConvertFrom(typeof(string))))");
                    using (new CodeBlockCookie(this))
                    {
                        AppendIndent();
                        Result.Append($"this.{description.FieldNameString} = ((");
                        description.AppendType(Result);
                        Result.AppendLine(")(tc.ConvertFrom(parameterValue)));");
                        AppendIndent();
                        Result.AppendLine($"{description.PropertyNameString}ValueAcquired = true;");
                    }

                    AppendIndent();
                    Result.AppendLine("else");
                    using (new CodeBlockCookie(this))
                    {
                        AppendTypeErrorMessage(description);
                    }
                }
            }
        }
コード例 #2
0
 protected virtual void AppendFieldDeclaration([NotNull] T4ParameterDescription description)
 {
     AppendIndent();
     Result.Append("private ");
     description.AppendType(Result);
     Result.Append(" ");
     Result.Append(description.FieldNameString);
     Result.AppendLine(";");
     Result.AppendLine();
 }
コード例 #3
0
 private void AppendPropertyInitializationFromSession([NotNull] T4ParameterDescription description)
 {
     AppendIndent();
     Result.AppendLine($"bool {description.PropertyNameString}ValueAcquired = false;");
     AppendIndent();
     Result.AppendLine($@"if (this.Session.ContainsKey(""{description.PropertyNameString}""))");
     using (new CodeBlockCookie(this))
     {
         AppendIndent();
         Result.Append($"this.{description.FieldNameString} = ((");
         description.AppendType(Result);
         Result.AppendLine($@")(this.Session[""{description.PropertyNameString}""]));");
         AppendIndent();
         Result.AppendLine($"{description.PropertyNameString}ValueAcquired = true;");
     }
 }
コード例 #4
0
 private void AppendPropertyInitializationFromContext([NotNull] T4ParameterDescription description)
 {
     AppendIndent();
     Result.AppendLine($"if (({description.PropertyNameString}ValueAcquired == false))");
     using (new CodeBlockCookie(this))
     {
         AppendIndent();
         Result.AppendLine(
             $@"object data = global::System.Runtime.Remoting.Messaging.CallContext.LogicalGetData(""{description.PropertyNameString}"");");
         AppendIndent();
         Result.AppendLine("if ((data != null))");
         using (new CodeBlockCookie(this))
         {
             AppendIndent();
             Result.Append($"this.{description.FieldNameString} = ((");
             description.AppendType(Result);
             Result.AppendLine(")(data));");
         }
     }
 }