小编Aar*_*ell的帖子

Microsoft Unit Testing失败,无法加载DLL进行测试

我有一个.NET 3.5类库,我正在尝试编写一些自动化测试,但是我在解决方案中运行任何测试时遇到以下错误:

测试方法Common.Tests.CommonTests.TestMethod1引发异常:System.IO.FileNotFoundException:无法加载文件或程序集'Library.Common,Version = 0.0.1.22004,Culture = en-AU,PublicKeyToken = null'或其依赖项之一.系统找不到指定的文件.WRN:程序集绑定日志记录已关闭.

要启用程序集绑定失败日志记录,请将注册表值[HKLM\Software\Microsoft\Fusion!EnableLog](DWORD)设置为1.

注意:程序集绑定失败日志记录会导致一些性能损失.

要关闭此功能,请删除注册表值[HKLM\Software\Microsoft\Fusion!EnableLog].

我对单元测试比较陌生,所以我很难过.

我已经比较了lib和测试项目之间的引用,唯一的区别是测试项目引用了MS单元测试DLL.

编辑澄清

我在"Library.Common"项目中使用了测试创建向导,因此测试项目引用了Library.Common项目.我也清理并构建了解决方案,这不是问题所在.

Library.Common.dll也在我的测试项目输出的bin\Debug文件夹中.

.net unit-testing

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

关闭头部而不做任何改变

我正在研究一个使用mercurial的项目,并且它已经陷入了一些混乱的问题,其中包括许多用于所有密集目的的磁头.

我想杀掉这些头并将提交图重新放回一行.

我被告知有一种合并分支的方法,但同时忽略任何文件更改,所以基本上只是合并树,但我似乎无法解决命令集.

有没有办法做到这一点,通过合并和忽略文件更改来杀掉分支?或者有没有一种方法可以在没有更改的情况下再次引入图形(在项目中没有大的不相关性)?

mercurial

6
推荐指数
2
解决办法
2248
查看次数

具有泛型的TypeScript对象文字类型断言

我有一个像这样的TypeScript类:

class Foo<Props extends {}> {
    public readonly props: Props;
    public readonly otherStuff: string[];

    constructor(properties: Props | string[], otherStuff?: string[]) {
      if (properties instanceof Array) {
        this.otherStuff = properties;
        this.props = {} as Props;
      } else {
        this.props = properties;
        this.otherStuff = otherStuff || [];
      }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题在于,这会导致tslint 中的无对象文字类型断言规则失败(this.props = {} as Props在线)。如果删除as Props零件,{}则会收到无法分配给type 的错误Props

在不禁用该tslint规则的情况下,您将如何进行设置?

供参考,这是预期的用法:

type X = { foo: string; }

const foo = …
Run Code Online (Sandbox Code Playgroud)

typescript tslint

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

SharePoint 404页面

最好的位置是在web.config customError部分中为SharePoint设置404错误页面,还是在网站集/ Web应用程序上有配置设置?

sharepoint

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

jQuery和ASP.NET - 强制按钮单击

我有一个ASP.NET页面,上面有一个表单.它上面还有一个搜索表单.搜索位于页面的右上角,因此搜索按钮首先添加到控件层次结构中.

当您处理另一个表单并按Enter键时,将单击搜索按钮.我不想要这个,我希望当你按下输入时,单击该表单的按钮.

我试过像这样使用jQuery:

$('#textBoxId').keyup(function(e) {
  if(e.keyCode === 13) { 
    $('#buttonId').click();
    e.preventDefault();
  }
});
Run Code Online (Sandbox Code Playgroud)

但提交的表单,意味着客户端验证没有运行(即onclick事件处理程序没有在按钮上运行).

实现这一目标的最佳方法是什么?

javascript asp.net jquery

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

通过SharePoint功能部署内容类型时的高CPU使用率

我正在创建一个SharePoint功能,该功能将用于将一些内容类型(及其自定义列/字段)部署到一个新的SharePoint站点中.

我已经使用外部工具为内容类型生成CAML(Andrew Connell的自定义STSADM命令)但是当我将它们放入功能并运行它时我遇到了问题.

该功能会像我期望的那样激活,但是当我尝试查看网站内容类型(/_settings/mngctypes.aspx)时,CPU会使用高达100%的使用率(w3wp)并保持不变.

有没有人看过这个,知道如何解决它?

sharepoint

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

与Ninject的后期绑定

我正在开发一个框架扩展,它使用Ninject作为IoC容器来处理动态注入,但是我在尝试解决这个问题时遇到了一些麻烦.

我的框架的期望是你将传入,IModule(s)所以它可以很容易地在MVC,WebForms等中使用.所以我有这样的类结构:

public class NinjectFactory : IFactory, IDisposable {
  readonly IKernel kernel;
  public NinjectFactory(IModule[] modules) {
    kernel = new StandardKernel(modules);
  }
}
Run Code Online (Sandbox Code Playgroud)

这很好,我可以在单元测试中创建一个实例并传入一个基本实现IModule(使用InlineModule似乎建议用于测试的构建).

问题是,直到运行时我才知道需要注入的类型,并且通过我正在扩展的框架请求它们,在这样的方法中:

public IInterface Create(Type neededType) {

}
Run Code Online (Sandbox Code Playgroud)

这里是我难倒的地方,我不确定检查的最佳方式 - >创建(如果需要) - >返回,我到目前为止:

public IInterface Create(Type neededType) {
  if(!kernel.Components.Has(neededType)) {
    kernel.Components.Connect(neededType, new StandardBindingFactory());
  }
}
Run Code Online (Sandbox Code Playgroud)

这将它添加到组件集合中,但是如果它创建了一个实例,或者我如何创建一个实例并传入参数,我就无法解决这个问题.ctor.

我是以正确的方式解决这个问题,还是Ninject甚至不打算以这种方式使用?

ninject

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

MEF来自导出部件的元数据

我正在寻找使用MEF作为我正在构建的应用程序的插件系统.我希望每个组件都有一个标识符(GUID),我希望能够查找它.但是,在使用导出的零件时,此ID也很有用.

有没有一种方法可以让我的元数据属性包含ID以及导出部分的属性(或方法),而不是让开发人员填写两次或使用反射从属性中找到它?

mef metadata

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

将刻度线解析为日期时间

如何将tick转换为1298011537289Ruby中的DateTime?

我需要转换的值来自JavaScript Date.now()调用,因此它以毫秒为单位

ruby

4
推荐指数
2
解决办法
3570
查看次数

实现C#方法返回F#中的Task <T>

我在F#中创建了一个继承自C#类的类型,该类公开了一个Task<T>在C#中返回的方法.我正在尝试找出在F#中做到这一点的最佳方式

说我的C#看起来像这样:

public class Foo {
    public TextWriter Out { get { return Console.Out; } }

    public virtual Task<SomeEnum> DoStuff() {
        return Task.FromResult(SomeEnum.Foo);
    } 
}

public enum SomeEnum {
    Foo,
    Bar
}
Run Code Online (Sandbox Code Playgroud)

我在F#中继承该类型的第一步看起来像这样:

type Bar() =
    inherits Foo()

    override this.DoStuff() =
        this.Out.WriteLineAsync("hey from F#") |> ignore

        System.Threading.Task.FromResult(SomeEnum.Bar)
Run Code Online (Sandbox Code Playgroud)

但是a)它不觉得它实际上是异步的并且b)它只是感觉不是-F#.

那么我将如何继承Foo该类并实现DoStuff期望返回的方法Task<T>呢?

c# f# c#-to-f# async-await

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