Xtra Coder created AVRO-1899:
--------------------------------

             Summary: PascalCase for property names generated by avrogen for C#
                 Key: AVRO-1899
                 URL: https://issues.apache.org/jira/browse/AVRO-1899
             Project: Avro
          Issue Type: Improvement
            Reporter: Xtra Coder


Currently (code in branch 1.8) avrogen generates properties in C# data classes 
1:1 as they are defined in shema, what results for field named 'favorite_color' 
in code like following:

        public string favorite_color {
            get { return this._favorite_color; }
            set { this._favorite_color = value; }
        }

In general property names should use PascalCasing (see: 
https://msdn.microsoft.com/en-us/library/ms229043.aspx) and correctly generated 
code would look like

        public string FavoriteColor {
            get { return this._favorite_color; }
            set { this._favorite_color = value; }
        }

Potential change is rather minor:

.\avro\lang\csharp\src\apache\main\CodeGen\CodeGen.cs : 581
change
var mangledName = CodeGenUtil.Instance.Mangle(field.Name);

to
var mangledName = CodeGenUtil.Instance.Mangle(AsPropName(field.Name));

where AsPropName function may look like following

        public string AsPropName(string name) {
            return Regex.Replace(name, @"^\S|_\S", match => 
match.Value.Replace("_","").ToUpper());
        }




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to