roslyn-code-analysis

    3熱度

    1回答

    我試圖用常規C#SyntaxFactory從零開始構造nameof表達式。不幸的是,出於某種原因,Roslyn未能將我的InvocationExpressionSyntax識別爲上下文nameof關鍵字,並在Emit命令後引發錯誤診斷。 在找出錯誤的過程中,我試着給Roslyn一些有效的代碼進行解析,希望能夠找到我的語法構造和「正確解析的」之間的一些區別。我在實驗上能夠很快地追蹤到「nameof」

    1熱度

    1回答

    我試圖編寫一個分析器來獲取有關使用roslyn語法樹的一些方法的信息。問題是:我正在編寫的分析器需要與我想分析的解決方案處於相同的解決方案中。 所以,這是我的代碼: using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp.Syntax; using System; using System.Collections.G

    0熱度

    1回答

    我想使用Roslyn在給定的Visual Studio解決方案中分析特定的類。在這個分析過程中,我希望獲得該類正在使用的所有接口。 我見過幾個例子,甚至可以檢索整個解決方案的接口(檢索InterfaceDeclarationSyntax的類型),但我想知道是否有可能獲得'外部'接口,即接口屬於類正在引用和使用的外部dll。 我會感謝您的幫助! 說明:我不只是指類實現的接口,而且也指類中可能的成員,

    1熱度

    1回答

    Roslyn文檔給出了下面的示例,作爲編譯某些代碼並顯示任何編譯錯誤的一種方式。 我想知道是否有人知道在下面的例子中對變量sourceCode中包含的代碼執行一些靜態代碼分析的方法。我已經將StyleCop.Analyzers添加到了我的測試項目中,但在此階段我無法看到如何使用它來執行樣式分析(例如可讀性)。 使用StyleCop.Analyzers來做到這一點是否可行或者是否有其他方法?任何建議

    1熱度

    1回答

    假設我在代碼SomeClass.SomeStaticMethod<T>()中調用了一個InvocationExpressionSyntax。 我將泛型類型T的名稱作爲字符串(來自IdentifierNameSyntax)。我試圖讓T的符號,但我沒有成功。 如何找出T型的命名空間信息? 更新:@SJP的答案是正確的。我想解釋一下我的錯,誰想要擺脫IdentifierNameSyntax,其中包含一個

    0熱度

    1回答

    我正在開發Roslyn分析器來檢測特定方法的使用,method1。我想允許在for和while循環中使用此方法,並在代碼中的所有其他情況下創建一個問題。 我該怎麼做?我開發的代碼隨處可見method1。每次我找到函數時,我都會想要檢查它是否在循環中,並且只有在循環中不產生錯誤。

    0熱度

    1回答

    我想有一個分析器檢測所有對setter屬性的調用,而不是在實現特定接口的對象的對象初始值設定項內部。我有點失去了如何檢測,文檔有點薄。我可以得到一個調用表達式,但是如何檢查它是否在對象初始值設定項中? 任何想法?

    1熱度

    1回答

    我有分析器建設得到 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net461</TargetFramework> <GenerateAssemblyInfo>false</GenerateAssemblyInfo> <PackageId>Weingartner.Json

    0熱度

    1回答

    我看到在在的csproj VS 2017年企業以下,PROJECT1,這是正在興建的.Net 4.5.2: 18>------ Rebuild All started: Project: Project1, Configuration: Debug Any CPU ------ 18>C:\git\27844-2-StyleCop\company\Class1.cs(26,31,26,47):

    0熱度

    2回答

    我需要將任何C#或VB.NET項目編譯爲.NetModule。我有下面的示例代碼,其中發出DLL,需要一些幫助來修改以下從.csproj得到.NetModules 在此先感謝。 // Required Microsoft.CodeAnalysis 1.3.0 class Program { static void Main(string[] args)