public override void CheckImportField(string memberName, VirtualType memberType) { var field = Type.GetField(memberName); if (field == null) { throw MakeConfigException.FieldReferenceNotExist(Type, memberName); } if (!(memberType is CLRType clrType)) { throw new InnerException(); } if (field.FieldType != clrType.Type) { throw MakeConfigException.FieldReferenceTypeNotMatch(field.FieldType.FullName, clrType.Type.FullName); } }
private static void ProcessTable(XmlNode table) { var name = table.Attributes?["name"]?.Value; if (name == null) { throw MakeConfigException.ConfigTableNameMiss(); } var tableConfig = new TableConfig(); table.ForeachNodes("define", define => { var type = new TableConfig.DefineType { FieldName = define.Attributes?["name"]?.Value }; define.TryParseSingleNode("comment", ref type.Description); define.TryParseSingleNode("import", ref type.ImportType); tableConfig.AddDefineType(type); }); TableConfigs.Add(name, tableConfig); }