小编Ern*_*sto的帖子

如何(我应该)模拟DocumentClb进行DocumentDb单元测试?

从新的CosmosDb模拟器我得到了一个存储库来执行基本的documentdb操作,这个存储库被注入其他类.我想对基本查询进行单元测试.

public class DocumentDBRepository<T> where T : class
{
 //Details ommited...

    public IQueryable<T> GetQueryable()
    {
        return _client.CreateDocumentQuery<T>(
            UriFactory.CreateDocumentCollectionUri(_databaseId, _collectionId),
            new FeedOptions { MaxItemCount = -1, EnableCrossPartitionQuery = true });
    }

    public async Task<IEnumerable<T>> ExecuteQueryAsync(IQueryable<T> query)
    {
        IDocumentQuery<T> documentQuery = query.AsDocumentQuery();
        List<T> results = new List<T>();
        while (documentQuery.HasMoreResults)
        {
            results.AddRange(await documentQuery.ExecuteNextAsync<T>());
        }

        return results;
    }


}
Run Code Online (Sandbox Code Playgroud)

此存储库需要一个文档客户端才能工作,它也会在构造函数上注入.

public DocumentDBRepository(string databaseId, IDocumentClient client)
{
    _client = client;
    _databaseId = databaseId;
    _collectionId = GetCollectionName();
}
Run Code Online (Sandbox Code Playgroud)

我最初的方法是使用CosmosDb模拟器,但这需要模拟器运行我不喜欢并使测试更慢.

我的第二种方法是尝试使用文档客户端的模拟.

var data = new List<MyDocumentClass>
{ …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing moq azure-cosmosdb

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

文档缓存仍在构建中......消息不会在VS 2010中消失

我最近发现,试图查看Visual Studio中任何方法或属性的文档都停止工作,它总是伴随着消息: 文档缓存仍在构建中.请在几秒钟后再试一次. 以前,它只是一秒钟,然后它工作,现在它不再显示文档.

这个文档缓存如何工作,但更重要的是,是什么导致它停止工作?

欢迎任何建议.谢谢

c# visual-studio-2010 visual-studio

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

在nuget中与WEB API集成的所有Ninject包都是什么?

我正在使用Ninject(MVC5 + WEBAPI)构建应用程序.并且有一些问题可以找出许多答案中的哪些答案解释了集成Ninject和WebApi的最新解决方案.所以我安装了以下软件包:

  • Ninject
  • WebApi2的Ninject集成
  • Ninject.MVC5
  • Ninject.Web.Common
  • Ninject.Web.Common.WebHost

有人建议我的初始问题(Ninject不解析API控制器实例化)应该通过以下任一方法解决:

  • 安装另一个包(Ninject.Web.WebApi-RC,Ninject.WebAPI等)
  • 创建我自己的依赖项解析器
  • 安装Ninject Owin主机
  • 混合上述任何一种,希望它最终有效.

所以它归结为,所有这些包都是什么?另外,我需要使用Owin托管吗?我从nuget控制台得到一个'无法找到包Ninject.Web.WebApi'消息,所以我假设这个消息不存在了吗?

谢谢.

ninject asp.net-web-api asp.net-mvc-5 asp.net-web-api2

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

Github 仅在开发分支中部署特定功能

所以我正在从 Github 找出最简单的分支/部署策略,它至少有一个 dev 和一个 release(master) 分支。看到这个答案后,我认为这非常接近我们所需要的。除了只能部署某些功能的一个大问题。不是一切。

此处提供的 2 个选项还不够好。这是一个常见的场景,每次恢复都是很讨厌的。另外,我读过樱桃采摘还有其他问题,特别是因为樱桃采摘的提交实际上是副本(这是真的吗?)

现在,我在想,如果对于我们开始处理的新功能,我们创建一个分支,并将它们合并到我们选择的 dev 分支,我们可以将这些分支合并到 release 分支(而不是从 dev 合并到 release 分支,我们从功能分支合并到开发和发布,这样我们就可以选择要发布的内容),这样我们就可以只准备发布所需的更改。我至少可以想到两个可能的问题:

  • 功能分支已经合并到 dev 和 release,这会不会让我以后有麻烦?
  • 它会起作用吗?由于我的功能分支可能基于其他功能分支中所做的更改(它们将基于开发),当我将功能合并到开发时,我必须先拉取,从而添加其他功能。

所以,总而言之,我如何保留一个开发分支,在那里进行一些更改,然后只将一些内容移动到另一个分支?。

非常感谢。

git branch github

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

部署失败.原因:TDS连接器的版本不正确.

我正在从Visual Studio 2013迁移到Visual Studio 2015.我安装了TDS,可以很好地构建和创建TDS包.最初我有一个错误,抱怨Hedgehog服务dll不存在,通过重新安装TDS消失了.

现在,我唯一的问题是当我尝试部署到我的本地时.构建测试通过正常,但部署选项在TDS项目中失败,并出现以下错误:

C:\ Program Files(x86)\ MSBuild\HedgehogDevelopment\SitecoreProject\v9.0\HedgehogDevelopment.SitecoreProject.targets(633,5):错误:部署失败.原因:TDS连接器的版本不正确.

之前有没有人看过这个错误,我该如何解决?我仍然可以在本地部署到我的文件夹,因为所有代码都在更改,我也可以创建包,但是让它全部工作真的很棒.

谢谢

sitecore tds sitecore7 visual-studio-2015

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

如何判断试图用于ContentSearchManager.GetIndex(SitecoreIndexableItem)的索引

因此,ContentSearchManager.GetIndex(SitecoreIndexableItem)返回null.我很确定我们可能会错过索引.使用sitecore主数据库时,一切正常,但在web中为空.

我想问题是,有没有办法知道哪个索引是GetIndex尝试恢复,返回null.

indexing sitecore sitecore7.2

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

为什么GC不收集未使用的对象?

我为我的实验用BlockingCollection实现了Producer/Consumer模式.

PerformanceCounter c = null;
void Main()
{
    var p  =System.Diagnostics.Process.GetCurrentProcess();
    c = new PerformanceCounter("Process", "Working Set - Private", p.ProcessName);

    (c.RawValue/1024).Dump("start");
    var blocking = new BlockingCollection<Hede>();
    var t = Task.Factory.StartNew(()=>{
        for (int i = 0; i < 10000; i++)
        {
            blocking.Add(new Hede{
            Field = string.Join("",Enumerable.Range(0,100).Select (e => Path.GetRandomFileName()))
            });
        }
        blocking.CompleteAdding();
    });

    var t2 = Task.Factory.StartNew(()=>{
        int x=0;
        foreach (var element in blocking.GetConsumingEnumerable())
        {
            if(x % 1000==0)
            {
                (c.RawValue/1024).Dump("now");
            }
            x+=1;   
        }
    });
    t.Wait();
    t2.Wait();
    (c.RawValue/1024).Dump("end");
}
Run Code Online (Sandbox Code Playgroud)

运行后我的内存转储:

start
211908 …
Run Code Online (Sandbox Code Playgroud)

c# memory-management producer-consumer

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

Powershell Write-Zip部分文件夹树

我有一个如下所示的文件夹结构:

-Daily Logs
  -Script1Logs
  -AnotherScriptLogs
  -ThirdScriptLogs
Run Code Online (Sandbox Code Playgroud)

我想压缩"每日日志"下面的所有文件夹,并保留相同的文件夹结构.

有没有办法一次性压缩文件夹而不单独检查每个文件夹?此外,zip文件是否只包含上面显示的文件结构而不是日志文件夹的整个路径?

这是我用来压缩Daily Logs文件夹的内容,但它不压缩子文件夹,它包含每日日志文件夹的完整路径,作为zip文件中文件夹结构的一部分.

If (!(Test-Path $ARCHIVELOGFOLDER\$ARCHIVELOGFILE)) { 
    Write-Zip $file.FullName $ARCHIVELOGFOLDER\$ARCHIVELOGFILE
    Write-Zip -Path $files -OutputPath $ArchiveFile -Append -FlattenPaths -IncludeEmptyDirectories -Quiet -Level 9
} 
Run Code Online (Sandbox Code Playgroud)

powershell zip pscx

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