Asp.net core 如何在.NETCore中从单独的文件嵌套Avro架构

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

我有一个.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 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记录可以很容易地相互引用/导入