【优化】生成的cfg c#代码都为partial类。并且新增PostInit和PostResolve两个partital函数

main
walon 2022-01-25 15:02:18 +08:00
parent 582edb6cc6
commit f9abe09a8d
9 changed files with 72 additions and 12 deletions

View File

@ -16,7 +16,7 @@ namespace {{x.namespace_with_top_module}}
/// {{x.escape_comment}} /// {{x.escape_comment}}
/// </summary> /// </summary>
{{~end~}} {{~end~}}
public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{x.parent}} {{else}} Bright.Config.BeanBase {{end}} public {{x.cs_class_modifier}} partial class {{name}} : {{if parent_def_type}} {{x.parent}} {{else}} Bright.Config.BeanBase {{end}}
{ {
public {{name}}(ByteBuf _buf) {{if parent_def_type}} : base(_buf) {{end}} public {{name}}(ByteBuf _buf) {{if parent_def_type}} : base(_buf) {{end}}
{ {
@ -29,6 +29,7 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{x.paren
} }
{{~end~}} {{~end~}}
{{~end~}} {{~end~}}
PostInit();
} }
public static {{name}} Deserialize{{name}}(ByteBuf _buf) public static {{name}} Deserialize{{name}}(ByteBuf _buf)
@ -84,6 +85,7 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{x.paren
{{cs_recursive_resolve field '_tables'}} {{cs_recursive_resolve field '_tables'}}
{{~end~}} {{~end~}}
{{~end~}} {{~end~}}
PostResolve();
} }
public {{x.cs_method_modifier}} void TranslateText(System.Func<string, string, string> translator) public {{x.cs_method_modifier}} void TranslateText(System.Func<string, string, string> translator)
@ -108,6 +110,9 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{x.paren
{{~end~}} {{~end~}}
+ "}"; + "}";
} }
}
partial void PostInit();
partial void PostResolve();
}
} }

View File

@ -15,7 +15,7 @@ namespace {{x.namespace_with_top_module}}
/// {{x.escape_comment}} /// {{x.escape_comment}}
/// </summary> /// </summary>
{{~end~}} {{~end~}}
public sealed class {{name}} public partial class {{name}}
{ {
{{~if x.is_map_table ~}} {{~if x.is_map_table ~}}
private readonly Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> _dataMap; private readonly Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> _dataMap;
@ -33,6 +33,7 @@ public sealed class {{name}}
_dataList.Add(_v); _dataList.Add(_v);
_dataMap.Add(_v.{{x.index_field.convention_name}}, _v); _dataMap.Add(_v.{{x.index_field.convention_name}}, _v);
} }
PostInit();
} }
public Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> DataMap => _dataMap; public Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> DataMap => _dataMap;
@ -52,6 +53,7 @@ public sealed class {{name}}
{ {
v.Resolve(_tables); v.Resolve(_tables);
} }
PostResolve();
} }
public void TranslateText(System.Func<string, string, string> translator) public void TranslateText(System.Func<string, string, string> translator)
@ -99,8 +101,10 @@ public sealed class {{name}}
{{~end~}} {{~end~}}
} }
{{~end~}} {{~end~}}
PostInit();
} }
public List<{{cs_define_type value_type}}> DataList => _dataList; public List<{{cs_define_type value_type}}> DataList => _dataList;
{{~if x.is_union_index~}} {{~if x.is_union_index~}}
@ -117,6 +121,7 @@ public sealed class {{name}}
{ {
v.Resolve(_tables); v.Resolve(_tables);
} }
PostResolve();
} }
public void TranslateText(System.Func<string, string, string> translator) public void TranslateText(System.Func<string, string, string> translator)
@ -135,6 +140,7 @@ public sealed class {{name}}
int n = _buf.ReadSize(); int n = _buf.ReadSize();
if (n != 1) throw new SerializationException("table mode=one, but size != 1"); if (n != 1) throw new SerializationException("table mode=one, but size != 1");
{{cs_deserialize '_buf' '_data' value_type}} {{cs_deserialize '_buf' '_data' value_type}}
PostInit();
} }
@ -153,6 +159,7 @@ public sealed class {{name}}
public void Resolve(Dictionary<string, object> _tables) public void Resolve(Dictionary<string, object> _tables)
{ {
_data.Resolve(_tables); _data.Resolve(_tables);
PostResolve();
} }
public void TranslateText(System.Func<string, string, string> translator) public void TranslateText(System.Func<string, string, string> translator)
@ -161,6 +168,9 @@ public sealed class {{name}}
} }
{{~end~}} {{~end~}}
partial void PostInit();
partial void PostResolve();
} }
} }

View File

@ -9,7 +9,7 @@ using Bright.Serialization;
namespace {{namespace}} namespace {{namespace}}
{ {
public sealed class {{name}} public partial class {{name}}
{ {
{{~for table in tables ~}} {{~for table in tables ~}}
{{~if table.comment != '' ~}} {{~if table.comment != '' ~}}
@ -28,9 +28,11 @@ public sealed class {{name}}
tables.Add("{{table.full_name}}", {{table.name}}); tables.Add("{{table.full_name}}", {{table.name}});
{{~end~}} {{~end~}}
PostInit();
{{~for table in tables ~}} {{~for table in tables ~}}
{{table.name}}.Resolve(tables); {{table.name}}.Resolve(tables);
{{~end~}} {{~end~}}
PostResolve();
} }
public void TranslateText(System.Func<string, string, string> translator) public void TranslateText(System.Func<string, string, string> translator)
@ -39,6 +41,9 @@ public sealed class {{name}}
{{table.name}}.TranslateText(translator); {{table.name}}.TranslateText(translator);
{{~end~}} {{~end~}}
} }
partial void PostInit();
partial void PostResolve();
} }
} }

View File

@ -18,7 +18,7 @@ namespace {{x.namespace_with_top_module}}
/// {{x.escape_comment}} /// {{x.escape_comment}}
/// </summary> /// </summary>
{{~end~}} {{~end~}}
public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent}} {{else}} Bright.Config.BeanBase {{end}} public {{x.cs_class_modifier}} partial class {{name}} : {{if parent_def_type}} {{parent}} {{else}} Bright.Config.BeanBase {{end}}
{ {
public {{name}}(JsonElement _json) {{if parent_def_type}} : base(_json) {{end}} public {{name}}(JsonElement _json) {{if parent_def_type}} : base(_json) {{end}}
{ {
@ -28,6 +28,7 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent}
foreach(var _v in {{field.convention_name}}) { {{field.convention_name}}_Index.Add(_v.{{field.index_field.convention_name}}, _v); } foreach(var _v in {{field.convention_name}}) { {{field.convention_name}}_Index.Add(_v.{{field.index_field.convention_name}}, _v); }
{{~end~}} {{~end~}}
{{~end~}} {{~end~}}
PostInit();
} }
public {{name}}({{~for field in hierarchy_export_fields }}{{cs_define_type field.ctype}} {{field.name}}{{if !for.last}},{{end}} {{end}}) {{if parent_def_type}} : base({{- for field in parent_def_type.hierarchy_export_fields }}{{field.name}}{{if !for.last}},{{end}}{{end}}) {{end}} public {{name}}({{~for field in hierarchy_export_fields }}{{cs_define_type field.ctype}} {{field.name}}{{if !for.last}},{{end}} {{end}}) {{if parent_def_type}} : base({{- for field in parent_def_type.hierarchy_export_fields }}{{field.name}}{{if !for.last}},{{end}}{{end}}) {{end}}
@ -38,6 +39,7 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent}
foreach(var _v in {{field.convention_name}}) { {{field.convention_name}}_Index.Add(_v.{{field.index_field.convention_name}}, _v); } foreach(var _v in {{field.convention_name}}) { {{field.convention_name}}_Index.Add(_v.{{field.index_field.convention_name}}, _v); }
{{~end~}} {{~end~}}
{{~end~}} {{~end~}}
PostInit();
} }
public static {{name}} Deserialize{{name}}(JsonElement _json) public static {{name}} Deserialize{{name}}(JsonElement _json)
@ -93,6 +95,7 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent}
{{cs_recursive_resolve field '_tables'}} {{cs_recursive_resolve field '_tables'}}
{{~end~}} {{~end~}}
{{~end~}} {{~end~}}
PostResolve();
} }
public {{x.cs_method_modifier}} void TranslateText(System.Func<string, string, string> translator) public {{x.cs_method_modifier}} void TranslateText(System.Func<string, string, string> translator)
@ -117,5 +120,8 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent}
{{~end~}} {{~end~}}
+ "}"; + "}";
} }
}
partial void PostInit();
partial void PostResolve();
}
} }

View File

@ -18,7 +18,7 @@ namespace {{x.namespace_with_top_module}}
/// {{x.escape_comment}} /// {{x.escape_comment}}
/// </summary> /// </summary>
{{~end~}} {{~end~}}
public sealed class {{name}} public sealed partial class {{name}}
{ {
{{~if x.is_map_table ~}} {{~if x.is_map_table ~}}
private readonly Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> _dataMap; private readonly Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> _dataMap;
@ -35,6 +35,7 @@ public sealed class {{name}}
_dataList.Add(_v); _dataList.Add(_v);
_dataMap.Add(_v.{{x.index_field.convention_name}}, _v); _dataMap.Add(_v.{{x.index_field.convention_name}}, _v);
} }
PostInit();
} }
public Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> DataMap => _dataMap; public Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> DataMap => _dataMap;
@ -54,6 +55,7 @@ public sealed class {{name}}
{ {
v.Resolve(_tables); v.Resolve(_tables);
} }
PostResolve();
} }
public void TranslateText(System.Func<string, string, string> translator) public void TranslateText(System.Func<string, string, string> translator)
@ -101,6 +103,7 @@ public sealed class {{name}}
{{~end~}} {{~end~}}
} }
{{~end~}} {{~end~}}
PostInit();
} }
public List<{{cs_define_type value_type}}> DataList => _dataList; public List<{{cs_define_type value_type}}> DataList => _dataList;
@ -119,6 +122,7 @@ public sealed class {{name}}
{ {
v.Resolve(_tables); v.Resolve(_tables);
} }
PostResolve();
} }
public void TranslateText(System.Func<string, string, string> translator) public void TranslateText(System.Func<string, string, string> translator)
@ -137,6 +141,7 @@ public sealed class {{name}}
int n = _json.GetArrayLength(); int n = _json.GetArrayLength();
if (n != 1) throw new SerializationException("table mode=one, but size != 1"); if (n != 1) throw new SerializationException("table mode=one, but size != 1");
_data = {{cs_define_type value_type}}.Deserialize{{value_type.bean.name}}(_json[0]); _data = {{cs_define_type value_type}}.Deserialize{{value_type.bean.name}}(_json[0]);
PostInit();
} }
{{~ for field in value_type.bean.hierarchy_export_fields ~}} {{~ for field in value_type.bean.hierarchy_export_fields ~}}
@ -154,6 +159,7 @@ public sealed class {{name}}
public void Resolve(Dictionary<string, object> _tables) public void Resolve(Dictionary<string, object> _tables)
{ {
_data.Resolve(_tables); _data.Resolve(_tables);
PostResolve();
} }
public void TranslateText(System.Func<string, string, string> translator) public void TranslateText(System.Func<string, string, string> translator)
@ -162,6 +168,9 @@ public sealed class {{name}}
} }
{{~end~}} {{~end~}}
partial void PostInit();
partial void PostResolve();
} }
} }

View File

@ -8,7 +8,7 @@ using System.Text.Json;
namespace {{namespace}} namespace {{namespace}}
{ {
public sealed class {{name}} public sealed partial class {{name}}
{ {
{{~for table in tables ~}} {{~for table in tables ~}}
{{~if table.comment != '' ~}} {{~if table.comment != '' ~}}
@ -26,10 +26,12 @@ public sealed class {{name}}
{{table.name}} = new {{table.full_name}}(loader("{{table.output_data_file}}")); {{table.name}} = new {{table.full_name}}(loader("{{table.output_data_file}}"));
tables.Add("{{table.full_name}}", {{table.name}}); tables.Add("{{table.full_name}}", {{table.name}});
{{~end~}} {{~end~}}
PostInit();
{{~for table in tables ~}} {{~for table in tables ~}}
{{table.name}}.Resolve(tables); {{table.name}}.Resolve(tables);
{{~end~}} {{~end~}}
PostResolve();
} }
public void TranslateText(System.Func<string, string, string> translator) public void TranslateText(System.Func<string, string, string> translator)
@ -38,6 +40,9 @@ public sealed class {{name}}
{{table.name}}.TranslateText(translator); {{table.name}}.TranslateText(translator);
{{~end~}} {{~end~}}
} }
partial void PostInit();
partial void PostResolve();
} }
} }

View File

@ -18,7 +18,7 @@ namespace {{x.namespace_with_top_module}}
/// {{x.escape_comment}} /// {{x.escape_comment}}
/// </summary> /// </summary>
{{~end~}} {{~end~}}
public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent}} {{else}} Bright.Config.BeanBase {{end}} public {{x.cs_class_modifier}} partial class {{name}} : {{if parent_def_type}} {{parent}} {{else}} Bright.Config.BeanBase {{end}}
{ {
public {{name}}(JSONNode _json) {{if parent_def_type}} : base(_json) {{end}} public {{name}}(JSONNode _json) {{if parent_def_type}} : base(_json) {{end}}
{ {
@ -28,6 +28,7 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent}
foreach(var _v in {{field.convention_name}}) { {{field.convention_name}}_Index.Add(_v.{{field.index_field.convention_name}}, _v); } foreach(var _v in {{field.convention_name}}) { {{field.convention_name}}_Index.Add(_v.{{field.index_field.convention_name}}, _v); }
{{~end~}} {{~end~}}
{{~end~}} {{~end~}}
PostInit();
} }
public {{name}}({{~for field in hierarchy_export_fields }}{{cs_define_type field.ctype}} {{field.name}}{{if !for.last}},{{end}} {{end}}) {{if parent_def_type}} : base({{- for field in parent_def_type.hierarchy_export_fields }}{{field.name}}{{if !for.last}},{{end}}{{end}}) {{end}} public {{name}}({{~for field in hierarchy_export_fields }}{{cs_define_type field.ctype}} {{field.name}}{{if !for.last}},{{end}} {{end}}) {{if parent_def_type}} : base({{- for field in parent_def_type.hierarchy_export_fields }}{{field.name}}{{if !for.last}},{{end}}{{end}}) {{end}}
@ -38,6 +39,7 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent}
foreach(var _v in {{field.convention_name}}) { {{field.convention_name}}_Index.Add(_v.{{field.index_field.convention_name}}, _v); } foreach(var _v in {{field.convention_name}}) { {{field.convention_name}}_Index.Add(_v.{{field.index_field.convention_name}}, _v); }
{{~end~}} {{~end~}}
{{~end~}} {{~end~}}
PostInit();
} }
public static {{name}} Deserialize{{name}}(JSONNode _json) public static {{name}} Deserialize{{name}}(JSONNode _json)
@ -94,6 +96,7 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent}
{{cs_recursive_resolve field '_tables'}} {{cs_recursive_resolve field '_tables'}}
{{~end~}} {{~end~}}
{{~end~}} {{~end~}}
PostResolve();
} }
public {{x.cs_method_modifier}} void TranslateText(System.Func<string, string, string> translator) public {{x.cs_method_modifier}} void TranslateText(System.Func<string, string, string> translator)
@ -118,5 +121,8 @@ public {{x.cs_class_modifier}} class {{name}} : {{if parent_def_type}} {{parent}
{{~end~}} {{~end~}}
+ "}"; + "}";
} }
}
partial void PostInit();
partial void PostResolve();
}
} }

View File

@ -18,7 +18,7 @@ namespace {{x.namespace_with_top_module}}
/// {{x.escape_comment}} /// {{x.escape_comment}}
/// </summary> /// </summary>
{{~end~}} {{~end~}}
public sealed class {{name}} public sealed partial class {{name}}
{ {
{{~if x.is_map_table ~}} {{~if x.is_map_table ~}}
private readonly Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> _dataMap; private readonly Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> _dataMap;
@ -35,6 +35,7 @@ public sealed class {{name}}
_dataList.Add(_v); _dataList.Add(_v);
_dataMap.Add(_v.{{x.index_field.convention_name}}, _v); _dataMap.Add(_v.{{x.index_field.convention_name}}, _v);
} }
PostInit();
} }
public Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> DataMap => _dataMap; public Dictionary<{{cs_define_type key_type}}, {{cs_define_type value_type}}> DataMap => _dataMap;
@ -54,6 +55,7 @@ public sealed class {{name}}
{ {
v.Resolve(_tables); v.Resolve(_tables);
} }
PostResolve();
} }
public void TranslateText(System.Func<string, string, string> translator) public void TranslateText(System.Func<string, string, string> translator)
@ -101,6 +103,7 @@ public sealed class {{name}}
{{~end~}} {{~end~}}
} }
{{~end~}} {{~end~}}
PostInit();
} }
public List<{{cs_define_type value_type}}> DataList => _dataList; public List<{{cs_define_type value_type}}> DataList => _dataList;
@ -119,6 +122,7 @@ public sealed class {{name}}
{ {
v.Resolve(_tables); v.Resolve(_tables);
} }
PostResolve();
} }
public void TranslateText(System.Func<string, string, string> translator) public void TranslateText(System.Func<string, string, string> translator)
@ -141,6 +145,7 @@ public sealed class {{name}}
} }
if (_json.Count != 1) throw new SerializationException("table mode=one, but size != 1"); if (_json.Count != 1) throw new SerializationException("table mode=one, but size != 1");
_data = {{cs_define_type value_type}}.Deserialize{{value_type.bean.name}}(_json[0]); _data = {{cs_define_type value_type}}.Deserialize{{value_type.bean.name}}(_json[0]);
PostInit();
} }
{{~ for field in value_type.bean.hierarchy_export_fields ~}} {{~ for field in value_type.bean.hierarchy_export_fields ~}}
@ -158,6 +163,7 @@ public sealed class {{name}}
public void Resolve(Dictionary<string, object> _tables) public void Resolve(Dictionary<string, object> _tables)
{ {
_data.Resolve(_tables); _data.Resolve(_tables);
PostResolve();
} }
public void TranslateText(System.Func<string, string, string> translator) public void TranslateText(System.Func<string, string, string> translator)
@ -166,6 +172,9 @@ public sealed class {{name}}
} }
{{~end~}} {{~end~}}
partial void PostInit();
partial void PostResolve();
} }
} }

View File

@ -8,7 +8,7 @@ using SimpleJSON;
namespace {{namespace}} namespace {{namespace}}
{ {
public sealed class {{name}} public sealed partial class {{name}}
{ {
{{~for table in tables ~}} {{~for table in tables ~}}
{{~if table.comment != '' ~}} {{~if table.comment != '' ~}}
@ -26,10 +26,12 @@ public sealed class {{name}}
{{table.name}} = new {{table.full_name}}(loader("{{table.output_data_file}}")); {{table.name}} = new {{table.full_name}}(loader("{{table.output_data_file}}"));
tables.Add("{{table.full_name}}", {{table.name}}); tables.Add("{{table.full_name}}", {{table.name}});
{{~end~}} {{~end~}}
PostInit();
{{~for table in tables ~}} {{~for table in tables ~}}
{{table.name}}.Resolve(tables); {{table.name}}.Resolve(tables);
{{~end~}} {{~end~}}
PostResolve();
} }
public void TranslateText(System.Func<string, string, string> translator) public void TranslateText(System.Func<string, string, string> translator)
@ -38,6 +40,9 @@ public sealed class {{name}}
{{table.name}}.TranslateText(translator); {{table.name}}.TranslateText(translator);
{{~end~}} {{~end~}}
} }
partial void PostInit();
partial void PostResolve();
} }
} }