You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Kalle Niemitalo (Jira)" <ji...@apache.org> on 2022/08/23 06:55:00 UTC

[jira] [Created] (AVRO-3614) Remove System.CodeGen dependency from main library

Kalle Niemitalo created AVRO-3614:
-------------------------------------

             Summary: Remove System.CodeGen dependency from main library
                 Key: AVRO-3614
                 URL: https://issues.apache.org/jira/browse/AVRO-3614
             Project: Apache Avro
          Issue Type: Wish
          Components: csharp
    Affects Versions: 1.11.1
            Reporter: Kalle Niemitalo


The Apache.Avro package on NuGet depends on the System.CodeDom package. I'd like this dependency to be removed so that I wouldn't have to distribute System.CodeDom with my applications, which encode and decode Avro data but do not generate source code at run time.

This would presumably require moving the code generation features from the Apache.Avro package to a new Apache.Avro.CodeGen package, which would be a breaking change.

In Avro 1.11.1, System.CodeDom is used by the Avro.CodeGen and Avro.CodeGenUtil classes. From those classes, only the CodeGen.GetNullableType, CodeGenUtil.UnMangle, and CodeGen.getType methods are used by the rest of the library. The CodeGen.getType method also depends on the CodeGenException class and the CodeGenUtil.Mangle method. None of those methods depend on System.CodeDom, so they could be moved to a new static class (perhaps named something like TypeUtil or ReflectionUtil) and kept in the main library.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)