Asp.net core 如何在.NETCore中从单独的文件嵌套Avro架构
我有一个.NET 5应用程序和以下文件,其中包含从Avro继承的类: A.C类Asp.net core 如何在.NETCore中从单独的文件嵌套Avro架构,asp.net-core,.net-core,avro,Asp.net Core,.net Core,Avro,我有一个.NET 5应用程序和以下文件,其中包含从Avro继承的类: A.C类 // ClassA.cs using Avro; using Avro.Specific; namespace Test { public class ClassA : ISpecificRecord { // ... other properties public ClassB ClassBProp { get; set; } public object Get(int fi
// ClassA.cs
using Avro;
using Avro.Specific;
namespace Test {
public class ClassA : ISpecificRecord
{
// ... other properties
public ClassB ClassBProp { get; set; }
public object Get(int fieldPos) { ... }
public void Put(int fieldPos, object fieldValue) { ... }
public Schema Schema => Schema.Parse(@"
{
""name"": ""ClassASchema"",
""type"": ""record"",
""fields"": [
{
""name"": ""ClassBProp"",
""type"": ""ClassBSchema""
}
]
}
");
}
}
B.C类
// ClassB.cs
using Avro;
using Avro.Specific;
namespace Test {
public class ClassB : ISpecificRecord
{
// Properties
// Get(), Put()
public Schema Schema => Schema.Parse(@"
""name"": ""ClassBSchema"",
""type"": ""record"",
""fields"": [ ... ]
");
}
}
这两个类都包含在同一文件夹中,并且是同一命名空间的一部分。当我运行应用程序时,它抛出一个SchemaParseException:Undefined name:ClassBSchema
。是否有方法从第二个文件(ClassB.cs
)导入Avro模式,并将其嵌套在第一个文件(ClassA.cs
)的Avro模式中
这仍然是真的吗?
这些课程是你自己写的吗?您是否考虑过使用AVDL文件并生成C#类?AVDL记录可以很容易地相互引用/导入