void AddExtensionData (CodeTypeDeclaration td)
{
td.BaseTypes.Add (typeref_ext_iface);
var field = new CodeMemberField (typeref_ext_class, "extensionDataField");
td.Members.Add (field);
var prop = new CodeMemberProperty () { Type = field.Type, Name = "ExtensionData", Attributes = (GenerateInternal ? MemberAttributes.Assembly : MemberAttributes.Public) | MemberAttributes.Final };
prop.GetStatements.Add (new CodeMethodReturnStatement (
new CodeFieldReferenceExpression (
new CodeThisReferenceExpression (),
"extensionDataField")));
prop.SetStatements.Add (new CodeAssignStatement (
new CodeFieldReferenceExpression (
new CodeThisReferenceExpression (),
"extensionDataField"),
new CodePropertySetValueReferenceExpression ()));
td.Members.Add (prop);
}