本文整理汇总了C#中IJsonClassGeneratorConfig类的典型用法代码示例。如果您正苦于以下问题:C# IJsonClassGeneratorConfig类的具体用法?C# IJsonClassGeneratorConfig怎么用?C# IJsonClassGeneratorConfig使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
IJsonClassGeneratorConfig类属于命名空间,在下文中一共展示了IJsonClassGeneratorConfig类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: WriteClass
public void WriteClass(IJsonClassGeneratorConfig config, TextWriter sw, JsonType type)
{
var visibility = config.InternalVisibility ? "Friend" : "Public";
if (config.UseNestedClasses)
{
sw.WriteLine(" {0} Partial Class {1}", visibility, config.MainClass);
if (!type.IsRoot)
{
if (ShouldApplyNoRenamingAttribute(config)) sw.WriteLine(" " + NoRenameAttribute);
if (ShouldApplyNoPruneAttribute(config)) sw.WriteLine(" " + NoPruneAttribute);
sw.WriteLine(" {0} Class {1}", visibility, type.AssignedName);
}
}
else
{
if (ShouldApplyNoRenamingAttribute(config)) sw.WriteLine(" " + NoRenameAttribute);
if (ShouldApplyNoPruneAttribute(config)) sw.WriteLine(" " + NoPruneAttribute);
sw.WriteLine(" {0} Class {1}", visibility, type.AssignedName);
}
var prefix = config.UseNestedClasses && !type.IsRoot ? " " : " ";
WriteClassMembers(config, sw, type, prefix);
if (config.UseNestedClasses && !type.IsRoot)
sw.WriteLine(" End Class");
sw.WriteLine(" End Class");
sw.WriteLine();
}
示例2: WriteFileEnd
public void WriteFileEnd(IJsonClassGeneratorConfig config, TextWriter sw)
{
if (config.UseNestedClasses)
{
sw.WriteLine(" }");
}
}
示例3: GetTypeName
public string GetTypeName(JsonType type, IJsonClassGeneratorConfig config)
{
var arraysAsLists = !config.ExplicitDeserialization;
switch (type.Type)
{
case JsonTypeEnum.Anything: return "object";
case JsonTypeEnum.Array: return arraysAsLists ? "IList<" + GetTypeName(type.InternalType, config) + ">" : GetTypeName(type.InternalType, config) + "[]";
case JsonTypeEnum.Dictionary: return "Dictionary<string, " + GetTypeName(type.InternalType, config) + ">";
case JsonTypeEnum.Boolean: return "bit NOT NULL";
case JsonTypeEnum.Float: return "[decimal](9,2) NOT NULL";
case JsonTypeEnum.Integer: return "[int] NOT NULL";
case JsonTypeEnum.Long: return "[bigint] NOT NULL";
case JsonTypeEnum.Date: return "[datetime]";
case JsonTypeEnum.NonConstrained: return "object";
case JsonTypeEnum.NullableBoolean: return "bit NULL";
case JsonTypeEnum.NullableFloat: return "[decimal](9,2) NULL";
case JsonTypeEnum.NullableInteger: return "[int] NULL";
case JsonTypeEnum.NullableLong: return "[bigint] NULL";
case JsonTypeEnum.NullableDate: return "[datetime] NULL";
case JsonTypeEnum.NullableSomething: return "object NULL";
case JsonTypeEnum.Object: return type.AssignedName;
case JsonTypeEnum.String: return "[varchar](50) NULL";
default: throw new System.NotSupportedException("Unsupported json type");
}
}
示例4: GetTypeName
public string GetTypeName(JsonType type, IJsonClassGeneratorConfig config)
{
var arraysAsLists = !config.ExplicitDeserialization;
switch (type.Type)
{
case JsonTypeEnum.Anything: return "object";
case JsonTypeEnum.Array: return arraysAsLists ? "IList<" + GetTypeName(type.InternalType, config) + ">" : GetTypeName(type.InternalType, config) + "[]";
case JsonTypeEnum.Dictionary: return "Dictionary<string, " + GetTypeName(type.InternalType, config) + ">";
case JsonTypeEnum.Boolean: return "bool";
case JsonTypeEnum.Float: return "double";
case JsonTypeEnum.Integer: return "int";
case JsonTypeEnum.Long: return "long";
case JsonTypeEnum.Date: return "DateTime";
case JsonTypeEnum.NonConstrained: return "object";
case JsonTypeEnum.NullableBoolean: return "bool?";
case JsonTypeEnum.NullableFloat: return "double?";
case JsonTypeEnum.NullableInteger: return "int?";
case JsonTypeEnum.NullableLong: return "long?";
case JsonTypeEnum.NullableDate: return "DateTime?";
case JsonTypeEnum.NullableSomething: return "object";
case JsonTypeEnum.Object: return type.AssignedName;
case JsonTypeEnum.String: return "string";
default: throw new NotSupportedException("Unsupported json type");
}
}
示例5: GetTypeName
public string GetTypeName(JsonType type, IJsonClassGeneratorConfig config)
{
var arraysAsLists = config.ExplicitDeserialization;
switch (type.Type)
{
case JsonTypeEnum.Anything: return "Object";
case JsonTypeEnum.Array: return arraysAsLists ? "IList(Of " + GetTypeName(type.InternalType, config) + ")" : GetTypeName(type.InternalType, config) + "()";
case JsonTypeEnum.Dictionary: return "Dictionary(Of String, " + GetTypeName(type.InternalType, config) + ")";
case JsonTypeEnum.Boolean: return "Boolean";
case JsonTypeEnum.Float: return "Double";
case JsonTypeEnum.Integer: return "Integer";
case JsonTypeEnum.Long: return "Long";
case JsonTypeEnum.Date: return "DateTime";
case JsonTypeEnum.NonConstrained: return "Object";
case JsonTypeEnum.NullableBoolean: return "Boolean?";
case JsonTypeEnum.NullableFloat: return "Double?";
case JsonTypeEnum.NullableInteger: return "Integer?";
case JsonTypeEnum.NullableLong: return "Long?";
case JsonTypeEnum.NullableDate: return "DateTime?";
case JsonTypeEnum.NullableSomething: return "Object";
case JsonTypeEnum.Object: return type.AssignedName;
case JsonTypeEnum.String: return "String";
default: throw new System.NotSupportedException("Unsupported json type");
}
}
示例6: WriteFileStart
public void WriteFileStart(IJsonClassGeneratorConfig config, TextWriter sw)
{
if (config.UseNamespaces)
{
foreach (var line in JsonClassGenerator.FileHeader)
{
sw.WriteLine("// " + line);
}
sw.WriteLine();
sw.WriteLine("using System;");
sw.WriteLine("using System.Collections.Generic;");
if (ShouldApplyNoPruneAttribute(config) || ShouldApplyNoRenamingAttribute(config))
sw.WriteLine("using System.Reflection;");
if (!config.ExplicitDeserialization && config.UsePascalCase)
sw.WriteLine("using Newtonsoft.Json;");
sw.WriteLine("using Newtonsoft.Json.Linq;");
if (config.ExplicitDeserialization)
sw.WriteLine("using JsonCSharpClassGenerator;");
if (config.SecondaryNamespace != null && config.HasSecondaryClasses && !config.UseNestedClasses)
{
sw.WriteLine("using {0};", config.SecondaryNamespace);
}
}
if (config.UseNestedClasses)
{
sw.WriteLine(" {0} class {1}", config.InternalVisibility ? "internal" : "public", config.MainClass);
sw.WriteLine(" {");
}
}
示例7: WriteFileStart
public void WriteFileStart(IJsonClassGeneratorConfig config, TextWriter sw)
{
foreach (var line in JsonClassGenerator.FileHeader)
{
sw.WriteLine("// " + line);
}
}
示例8: WriteClass
public void WriteClass(IJsonClassGeneratorConfig config, TextWriter sw, JsonType type)
{
var visibility = "public";
sw.WriteLine();
sw.WriteLine("package {0};",config.Namespace );
if (config.UseNestedClasses)
{
if (!type.IsRoot)
{
if (ShouldApplyNoRenamingAttribute(config)) sw.WriteLine(" " + NoRenameAttribute);
if (ShouldApplyNoPruneAttribute(config)) sw.WriteLine(" " + NoPruneAttribute);
sw.WriteLine(" {0} class {1}", visibility, type.AssignedName);
sw.WriteLine(" {");
}
}
else
{
if (ShouldApplyNoRenamingAttribute(config)) sw.WriteLine(" " + NoRenameAttribute);
if (ShouldApplyNoPruneAttribute(config)) sw.WriteLine(" " + NoPruneAttribute);
sw.WriteLine(" {0} class {1}", visibility, type.AssignedName);
sw.WriteLine(" {");
}
var prefix = config.UseNestedClasses && !type.IsRoot ? " " : " ";
var shouldSuppressWarning = config.InternalVisibility && !config.UseProperties && !config.ExplicitDeserialization;
if (shouldSuppressWarning)
{
sw.WriteLine("#pragma warning disable 0649");
if (!config.UsePascalCase) sw.WriteLine();
}
if (type.IsRoot && config.ExplicitDeserialization) WriteStringConstructorExplicitDeserialization(config, sw, type, prefix);
if (config.ExplicitDeserialization)
{
if (config.UseProperties) WriteClassWithPropertiesExplicitDeserialization(sw, type, prefix);
else WriteClassWithFieldsExplicitDeserialization(sw, type, prefix);
}
else
{
WriteClassMembers(config, sw, type, prefix);
}
if (shouldSuppressWarning)
{
sw.WriteLine();
sw.WriteLine("#pragma warning restore 0649");
sw.WriteLine();
}
if (config.UseNestedClasses && !type.IsRoot)
sw.WriteLine(" }");
if (!config.UseNestedClasses)
sw.WriteLine(" }");
sw.WriteLine();
}
示例9: WriteNamespaceEnd
public void WriteNamespaceEnd(IJsonClassGeneratorConfig config, TextWriter sw, bool root)
{
if (GetNamespace(config, root) != null)
{
sw.WriteLine("}");
sw.WriteLine();
}
}
示例10: FieldInfo
public FieldInfo(IJsonClassGeneratorConfig generator, string jsonMemberName, JsonType type, bool usePascalCase, IList<object> Examples)
{
this.generator = generator;
this.JsonMemberName = jsonMemberName;
this.MemberName = jsonMemberName;
if (usePascalCase) MemberName = JsonCSharpClassGenerator.JsonClassGenerator.ToTitleCase(MemberName);
this.Type = type;
this.Examples = Examples;
}
示例11: JsonType
public JsonType(IJsonClassGeneratorConfig generator, JToken token)
: this(generator)
{
Type = GetFirstTypeEnum(token);
if (Type == JsonTypeEnum.Array)
{
var array = (JArray)token;
InternalType = GetCommonType(generator, array.ToArray());
}
}
示例12: WriteClassMembers
private void WriteClassMembers(IJsonClassGeneratorConfig config, TextWriter sw, JsonType type)
{
foreach (var field in type.Fields)
{
if (config.UseProperties)
{
string typeName = field.Type.InternalType == null
? field.Type.GetTypeName()
: field.Type.InternalType.GetTypeName();
sw.WriteLine(" [{0}] {1},", field.MemberName, typeName);
}
}
}
示例13: WriteClass
public void WriteClass(IJsonClassGeneratorConfig config, TextWriter sw, JsonType type)
{
sw.WriteLine("create table " + type.AssignedName + " (");
sw.WriteLine(" [Id] [int] IDENTITY(1,1) NOT NULL,");
WriteClassMembers(config, sw, type);
sw.WriteLine("CONSTRAINT [PK_" + type.AssignedName + "] PRIMARY KEY CLUSTERED");
sw.WriteLine(" (");
sw.WriteLine(" [Id] asc");
sw.WriteLine(" )");
sw.WriteLine(")");
sw.WriteLine();
}
示例14: GetCommonType
public static JsonType GetCommonType(IJsonClassGeneratorConfig generator, JToken[] tokens)
{
if (tokens.Length == 0) return new JsonType(generator, JsonTypeEnum.NonConstrained);
var common = new JsonType(generator, tokens[0]).MaybeMakeNullable(generator);
for (int i = 1; i < tokens.Length; i++)
{
var current = new JsonType(generator, tokens[i]);
common = common.GetCommonType(current);
}
return common;
}
示例15: WriteClass
public void WriteClass(IJsonClassGeneratorConfig config, TextWriter sw, JsonType type)
{
var prefix = GetNamespace(config, type.IsRoot) != null ? " " : "";
var exported = !config.InternalVisibility || config.SecondaryNamespace != null;
sw.WriteLine(prefix + (exported ? "export " : string.Empty) + "interface " + type.AssignedName + " {");
foreach (var field in type.Fields)
{
var shouldDefineNamespace = type.IsRoot && config.SecondaryNamespace != null && config.Namespace != null && (field.Type.Type == JsonTypeEnum.Object || (field.Type.InternalType != null && field.Type.InternalType.Type == JsonTypeEnum.Object));
if (config.ExamplesInDocumentation)
{
sw.WriteLine();
sw.WriteLine(prefix + " /**");
sw.WriteLine(prefix + " * Examples: " + field.GetExamplesText());
sw.WriteLine(prefix + " */");
}
sw.WriteLine(prefix + " " + field.JsonMemberName + (IsNullable(field.Type.Type) ? "?" : "") + ": " + (shouldDefineNamespace ? config.SecondaryNamespace + "." : string.Empty) + GetTypeName(field.Type, config) + ";");
}
sw.WriteLine(prefix + "}");
sw.WriteLine();
}