小编Nic*_*man的帖子

TFS API:GetLocalWorkspaceInfo始终返回null

在我的一台机器上,我从任何GetLocalWorkspaceInfo调用中得到null的返回值.对于这个简单的程序,我已经孤立到问题甚至失败了:

namespace WorkstationTest
{
    using Microsoft.TeamFoundation.VersionControl.Client;

    class Program
    {
        static void Main()
        {
            string workspaceLocalPath = @"C:\Dev";
            var info = Workstation.Current
                          .GetLocalWorkspaceInfo(workspaceLocalPath);

            // info is always null here
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经检查过:

  • 完全相同的代码就像我应该的那样在我的另一台机器上工作.

  • 我已经确认我有一个工作区 C:\Dev

    工作区截图

  • 我创建了一个新工作区并在不同的目录中更改workspaceLocalPath了代码中的变量以匹配.

  • 我查阅了文档,其中声明返回值为null if the path is not in a workspace.从上图中,路径应位于工作区中.

然而,一切似乎都表明这应该有效.有什么我可以失踪的吗?

c# tfs-sdk

27
推荐指数
4
解决办法
9374
查看次数

MEF [ImportingConstructor] not called until [Import(AllowDefault = true)] is used

I am using MEF1 and running in to an odd scenerio.

This constructor is never called:

[ImportingConstructor]
public LogViewModuleRoot(INavigationCommandManager navigationCommandManager,
                         ISettingsManager settingsManager,
                         IBusyService busyService)
{
    NavigationCommandManager = navigationCommandManager;
    SettingsManager = settingsManager;
    BusyService = busyService;
}
Run Code Online (Sandbox Code Playgroud)

While the constructor is called with the correct value when changed to this:

[ImportingConstructor]
public LogViewModuleRoot(INavigationCommandManager navigationCommandManager,
                         ISettingsManager settingsManager,
                         [Import(AllowDefault = true)] IBusyService busyService)
{
    NavigationCommandManager = navigationCommandManager;
    SettingsManager = settingsManager;
    BusyService = busyService; // Properly hydrated - i.e. not null
}
Run Code Online (Sandbox Code Playgroud)

Typically, an ImportingConstructor …

c# mef composition

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

LINQ和ReSharper

嗨,我有以下代码:

if (!_jobs.Any(j => j.Id == emailJob.Id))
{
}
Run Code Online (Sandbox Code Playgroud)

此代码应找到满足条件的任何元素.所以我认为它应该在找到第一个元素后返回,如下所示:

if (!_jobs.FirstOrDefault(j => j.Id == emailJob.Id) != null)
{
}
Run Code Online (Sandbox Code Playgroud)

Resharper尝试将此LINQ表达式简化为:

if (_jobs.All(j => j.Id != emailJob.Id))
{
}
Run Code Online (Sandbox Code Playgroud)

这似乎对我来说效率较低,因为它必须检查每个元素是否满足逆条件.

对不起,如果我只是误解LINQ如何工作.

c# linq resharper

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

标签 统计

c# ×3

composition ×1

linq ×1

mef ×1

resharper ×1

tfs-sdk ×1