小编Pan*_*mma的帖子

Roslyn:如何使用Roslyn C获取DeclarationSyntax的命名空间#

我有一个包含一些类文件的ac#解决方案.通过Roslyn,我能够解析解决方案以获得解决方案中的项目列表.从那里,我可以在每个项目中获取文档.然后,我可以获得每个ClassDeclarationSyntax的列表.这是起点.

        foreach (var v in _solution.Projects)
        {
            //Console.WriteLine(v.Name.ToString());
            foreach (var document in v.Documents)
            {
                SemanticModel model = document.GetSemanticModelAsync().Result;
                var classes = document.GetSyntaxRootAsync().Result.DescendantNodes().OfType<ClassDeclarationSyntax>();
                foreach(var cl in classes)
                {
// Starting around this point...
                    ClassDiagramClass cls = new ClassDiagramClass(cl, model);
                    diagramClasses.Add(cls);
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

从这些对象我希望能够获得每个类中使用的变量的命名空间.参见文件1有一个方法"getBar()",它返回一个B.Bar类型的对象.命名空间很重要,因为它告诉您实际返回的是哪种类型的Bar.

File1.cs

using B;
namespace A {
    public class foo(){
        public Bar getBar(){ return new Bar();}
    }
}
Run Code Online (Sandbox Code Playgroud)

File2.cs

namespace B {
    public class Bar(){
    }
}
Run Code Online (Sandbox Code Playgroud)

File3.cs

namespace C {
    public class Bar(){
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何从代码中的位置获取Namespace值.有任何想法吗?

c# analysis roslyn

7
推荐指数
1
解决办法
2773
查看次数

VSTS 中如何确定拉取请求的“相关”工作项?

我最近发现,在查看哪些工作项与不同部署关联时,可以使用链接到拉取请求的工作项。也就是说,我想确保相关的工作项目是准确的。我可以手动链接我的工作项,但在某些情况下,单个挤压合并提交中可能会出现 50 个不同的提交。有很多不同的提交需要手动输入。

我看到 VSTS(Azure Devops)尝试自动添加一些相关的工作项。问题是我不知道这些工作项现在是如何计算的。如下图所示,即使没有检测到代码更改,您也可以拥有关联的工作项。有人可以解释一下吗?根据 Fiddler 的说法,VSTS api 中调用的 API 是:

// POST https://foobar.visualstudio.com/16e07dde-f652-4a64-93f1-3edb3d70d5e1/_apis/git/repositories/c9bd207c-bc6e-4e6c-aba9-8fd6aeb53946/commitsBatch 

{"$top":101,"itemVersion":{"versionOptions":0,"versionType":0,"version":"master"},"compareVersion":{"versionOptions":0,"versionType":0,"version":"users/v-username/140357_TestBranchForFeatureDeployment_ButWithLinks"}}

Run Code Online (Sandbox Code Playgroud)

即使没有检测到代码更改,也会出现一堆相关的工作项。

pull-request azure-devops azure-pipelines azure-devops-rest-api

6
推荐指数
1
解决办法
4794
查看次数

如何取消选择“Microsoft Visual Studio 版本选择器”的默认版本

我现在一辈子都无法弄清楚这一点。您可能认为这很容易,但事实并非如此。这并不容易。

问题:

我试图使用 VSTS(Visual Studio Team Services)克隆功能来克隆存储库。通过 Chrome 浏览器在网络上查看时单击该按钮。

Visual Studio 版本选择器弹出并询问我想使用哪个版本的 VS 来克隆存储库。我不小心单击了版本 2017,然后选中了“记住”我的选择选项。现在我不知道如何撤销这个决定。

我正在尝试使用 VS2015 来打开此操作。

任何帮助是极大的赞赏。我尝试在其他帖子中寻找答案。似乎还没有人针对此问题创建帖子。

windows-10 visual-studio-2015 azure-devops

5
推荐指数
2
解决办法
2415
查看次数

如何使用整行作为切换开关来切换 office-ui-fabric detailslist 行选择,而不是仅使用小的复选框

我正在使用 Office UI Fabric React 组件,并且我正在尝试改进更改DetailsList的默认选择行为。默认情况下,单击一行和单击右侧的小复选框是有区别的。我希望复选框单击的相同效果应用于行单击。

当您单击复选框时,它会切换行,并且不会像我使用行单击那样取消选择其他行。您还可以在此处使用 shift click 和 control click 以及所有其他不错的点击类型。

我如何才能使单击一行与单击其中一个复选框具有相同的功能? 在此处输入图片说明

javascript typescript reactjs office-ui-fabric

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

由于语法不正确,INSERT INTO php mysql语句无法正常工作.

试图找出以下代码产生此错误的原因.

您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在''username','password'附近使用正确的语法.)VALUES('Pangamma','39ef1e6d2fb0743000e5956362b6dc55''在第1行

密码,电子邮件和用户都是正确的.数据库设置也是如此.我现在已经在墙上敲了3个小时.可能是一件非常简单的事情.我究竟做错了什么?

/** returns a reason if it fails **/
        function addUser($user,$password,$email){
            global $db_database;global $tb_logins;global $tb_info; global $tb_licenses;
            $licensekey = md5($user.$password.$email);
            $hash = md5($user.'please'.$password.'the salt');
            if (mysql_num_rows(mysql_query("SELECT * FROM ".$tb_logins." WHERE username='$user'")) > 0){
                return 'error : username already in use.';
            }
            mysql_query("INSERT INTO `$db_database`.`$tb_logins` ( 'username' , 'password' ) VALUES ('$user', '$hash')") or die(mysql_error());
            mysql_query("INSERT INTO $tb_info (`username`,`email`,`licensekey`,`limit`) VALUES ('".$user."','".$email."','".$licensekey."','0')") or die(mysql_error());
            return 'success!';
        }
Run Code Online (Sandbox Code Playgroud)

php mysql insert

0
推荐指数
1
解决办法
298
查看次数