小编log*_*ity的帖子

使用Roslyn语义模型在单个.cs文件中查找符号

我正在使用Roslyn创建一个分析器,当特定类以不同步的方式暴露其字段时,该分析器会警告用户,以帮助防止竞争条件.

问题:

我目前有工作代码检查以确保字段是私有的.我遇到了最后一块拼图的麻烦:找出一种方法来确保所有字段只能在一个锁定块内访问,因此它们(表面上)是同步的.

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using System.Threading;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.CodeAnalysis.Diagnostics;
using Microsoft.CodeAnalysis.FindSymbols;

namespace RaceConditions
{
    [DiagnosticAnalyzer(LanguageNames.CSharp)]
    public class UnsynchronizedMemberAccess : DiagnosticAnalyzer
    {
        public const string DiagnosticId = "UnsynchronizedMemberAccess";
        internal static readonly LocalizableString Title = "UnsynchronizedMemberAccess Title";
        private static readonly LocalizableString MessageFormat = "Unsychronized fields are not thread-safe";
        private static readonly LocalizableString Description = "Accessing fields without a get/set methods synchronized with each other and the constructor may lead to …
Run Code Online (Sandbox Code Playgroud)

c# roslyn roslyn-code-analysis

5
推荐指数
1
解决办法
1145
查看次数

标签 统计

c# ×1

roslyn ×1

roslyn-code-analysis ×1