【问题标题】:Resharper: Don't change order of member variables in JSON classesResharper:不要更改 JSON 类中成员变量的顺序
【发布时间】:2017-08-03 03:02:54
【问题描述】:

可以在语言、C#、类型成员布局的 ReSharper 选项中设置成员的顺序。 Resharper 做得正确。但是,我想排除某些包含JSONProperty 属性的类。

例如,请参阅下面的课程。我不希望 Resharper 重新排序其中的成员。

internal class ExecutionParametersJson
{
    [JsonProperty("Factor")]
    public string Factor { get; set; }

    [JsonProperty("Penalty")]
    public string Penalty { get; set; }

    [JsonProperty("Origin")]
    public string Origin { get; set; }

    [JsonProperty("InterFactor")]
    public string InterFactor { get; set; }
}

我正在使用最新版本的 Resharper。

谁能告诉我如何配置 Resharper 来实现这一点?

实际上,我尝试将 Order 属性放入其中。但这并没有什么不同。

[JsonProperty("Factor", Order = 1)]
public string Factor{ get; set; }

【问题讨论】:

    标签: c# resharper


    【解决方案1】:

    但是,我想排除某些包含 JSONProperty 属性的类。

    是的,这很容易做到。

    鉴于此示例代码,请注意我包含的其他属性纯粹是为了证明以后的观点:

    internal class ExecutionParametersJson
    {
        [JsonProperty("Factor")]
        public string Factor { get; set; }
    
        public string SomeProperty { get; set; }
    
        [JsonProperty("Penalty")]
        public string Penalty { get; set; }
    
        [JsonProperty("Origin")]
        public string Origin { get; set; }
    
        public int SomeOtherProperty { get; set; }
    
        [JsonProperty("InterFactor")]
        public string InterFactor { get; set; }
    }
    

    ...然后选择Resharper.Options.Code Editing.c#.File Layout,出现模式列表:

    选择您喜欢的模式。这里我选择了默认模式。我过去一直在添加它,所以它看起来可能会有所不同。

    向下滚动直到找到 Properties 的区域,您可能必须像这样创建它:

    选择Properties, Indexers,确保Sort By设置为Name

    双击属性、索引器。出现条件编辑器。添加顶级And条件; 不是并指定 JsonProperty

    现在对相关文件运行 Resharper.Edit.Cleanup Code。除了具有JsonProperty 属性的属性之外,所有属性都将按字母顺序排序并放入标题为Propertiesregion

    internal class ExecutionParametersJson
    {
        #region Properties
    
        public int SomeOtherProperty { get; set; }
        public string SomeProperty { get; set; }
    
        #endregion
    
        [JsonProperty("Factor")]
        public string Factor { get; set; }
    
        [JsonProperty("Penalty")]
        public string Penalty { get; set; }
    
        [JsonProperty("Origin")]
        public string Origin { get; set; }
    
        [JsonProperty("InterFactor")]
        public string InterFactor { get; set; }
    }
    

    现在我在这里包含的其他属性只是为了证明您如何有条件地格式化成员。随意删除这些属性; #region 或根据您的喜好定制。

    继续

    您可能需要稍微整理一下并在 Resharper 中创建一个特定的 模式,称为 JSON 类 或类似的。

    【讨论】:

      猜你喜欢
      • 2017-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多