首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用TypeLite生成具有DataMember名称的C#类

使用TypeLite生成具有DataMember名称的C#类
EN

Stack Overflow用户
提问于 2017-09-26 08:25:50
回答 1查看 340关注 0票数 1

我目前正在使用TypeLite从一组C#类构建.d.ts接口文件。我遇到了一个问题,其中一些类具有DataMember的属性,其中给定的值与属性名不同。在本例中,我希望TypeLite使用DataMember属性,而不是属性名称--不幸的是,我在文档中找不到任何地方表明这是可能的。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-26 08:43:03

代码只检查内置的[TsProperty]属性以重命名属性:

代码语言:javascript
复制
var attribute = memberInfo.GetCustomAttribute<TsPropertyAttribute>(false);
if (attribute != null) {
    if (!string.IsNullOrEmpty(attribute.Name)) {
        this.Name = attribute.Name;
    }

    this.IsOptional = attribute.IsOptional;
}

您可以将其修补为还包括[DataMember]属性:

代码语言:javascript
复制
var dataMemberAttribute = memberInfo.GetCustomAttribute<System.Runtime.Serialization.DataMemberAttribute>(false);
if (dataMemberAttribute!= null) {
    if (!string.IsNullOrEmpty(dataMemberAttribute.Name)) {
        this.Name = dataMemberAttribute.Name;
    }

    this.IsOptional = !dataMemberAttribute.IsRequired;
}

也许你可以用这个补丁提交一个拉请求。确保添加测试,并考虑将这两个属性应用于属性的情况。

为了保持一致性,您还必须修补支持[DataContract]属性才能重命名类。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46421371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档