public static void ValidateFieldSchema(string name, SchemaType type, object val) { if (null == val) { return; } var expectedClasses = SchemaTypeClasses[type]; if (null == expectedClasses) { throw new System.Exception("Invalid Java object for schema type " + type + " : " + val.GetType() + @" for field : """ + name + @""""); } var foundMatch = false; foreach (var expectedCls in expectedClasses) { if (expectedCls.IsInstanceOfType(val)) { foundMatch = true; break; } } if (!foundMatch) { throw new System.Exception("Invalid Java object for schema type " + type + " : " + val.GetType() + @" for field : """ + name + @""""); } switch (type.InnerEnumValue) { case SchemaType.InnerEnum.INT8: case SchemaType.InnerEnum.INT16: case SchemaType.InnerEnum.PROTOBUF: case SchemaType.InnerEnum.AVRO: case SchemaType.InnerEnum.AutoConsume: case SchemaType.InnerEnum.AutoPublish: case SchemaType.InnerEnum.AUTO: case SchemaType.InnerEnum.KeyValue: case SchemaType.InnerEnum.JSON: case SchemaType.InnerEnum.NONE: throw new System.Exception("Currently " + type.GetType().Name + " is not supported"); default: break; } }