我有一个说100px,100px维度的div,onmousedown我想移动这个div内的一个对象,并希望鼠标不应指向除div之外的任何其他位置,以便我的对象放在div中.鼠标将恢复正常onmouseup.
什么应该是javascript将鼠标只保留在div中?
我有一个扩展方法:
public static bool Exists(this object toCheck)
{
return toCheck != null;
}
Run Code Online (Sandbox Code Playgroud)
如果我使用它然后做这样的事情:
if (duplicate.Exists())
throw new Exception(duplicate);
Run Code Online (Sandbox Code Playgroud)
然后resharper警告我有一个可能的空引用异常.
我知道这是不可能的,但我怎么能告诉resharper这没关系呢?
我们已经开始将 Roslyn 分析器包含在我们的一些库中,以使我们的开发人员更容易发现这些库的功能。
为了促进这一点,我们有一个分析器使用的共享库。因此,我们有共享组件, Company.Roslyn.dll并且Company.Collections.VisualStudio.dll包含分析器并且依赖于该共享组件。当我们创建 nuget 时,Company.Collections我们包含如下依赖项:
<file src="Build\Company.Collections.VisualStudio.dll" target="analyzers\dotnet\cs" />
<file src="Build\Company.Roslyn.dll" target="analyzers\dotnet\cs" />
Run Code Online (Sandbox Code Playgroud)
当安装程序运行时,它会将两个 dll 作为分析器添加到项目文件中。
现在我们已经创建了第二个分析器 dll,它依赖于它,Company.Roslyn.dll我们最终在项目的分析器列表中得到了 2 个实例。
我的第一个问题是,这是正确的吗?实际上并不Company.Roslyn.dll包含任何分析器,那么是否应该将其添加为分析器?如果我不这样做,那么在某些情况下我会收到一条警告,提示应将依赖项添加为分析器......
我的第二个更普遍的问题是我们应该如何管理分析器的依赖关系,我的感觉是它们应该只部署在文件夹中,而不是分析器,所以它只是install.ps1存在问题的默认脚本吗?这应该只添加实际的分析器dll?
我有一个.NET DLL,它有一些暴露给com的接口\类.在构建过程中生成一个.tlb文件,这个tlb由一些c ++代码引用.结果,编译器为tlb生成.tlh文件.
当我在本地运行构建时,其中一个接口中的一个属性最终会得到tlh中不具有相同名称的相应方法..net代码中的属性称为PropertyA,最终称为get_propertyA,而PropertyB最终称为get_PropertyB.当发生这种情况时我没有眨眼睛,只是使用了tlh中定义的方法,并假设一切都是笨拙的,但是当我编写这些更改时,构建对其他任何人都不起作用,因为编译器生成了名为get_PropertyA的属性, get_PropertyB(在propertyA中注意案例不匹配).
在两台机器上生成的tlb文件是相同的(根据十六进制比较器),并且tlh文件都由相同的编译器版本生成.
构建过程通过执行以下操作创建tlb:regasm path\to\dll\Mydll.dll -tlb:path\to\output\mydll.tlb
任何想法为什么我的本地版本最终与一个名称不正确的属性?或者我能做些什么来解决它?
更新:我读到tlbexp将使用它找到的字符串的第一个版本,并且可以通过重新编译来更改.虽然我没有使用tlbexp,但我想知道这是不是问题.我找到了与我的方法同名的参数(在其他方法中),但在开头有一个小写字母.所以我替换了所有这些.重建,没有变化.所以我然后重命名了我的COM方法.重建并获得预期的丢失方法错误.将方法重命名为原始名称,嘿,它似乎是固定的.因为它现在似乎工作,我不能让它再次失败我不能尝试建议的解决方案,但我喜欢重命名的想法,以防将来发生这种情况.
如果我使用PostMessage对消息进行排队(并且它返回true)我可以确定最终窗口将处理消息,除非发生一些灾难性事件吗?(无论如何会导致程序崩溃)
我正在Java中实现一个模型,它需要迭代一个集合并经历一些识别阶段,它涉及到循环,而循环等.这是我想在细粒度级别测试的那种东西,所以我有信心它已得到妥善实施.
我用它作为开始单元测试的机会,因为我认为它对我的代码有益.从那以后,我一直在阅读一本书籍,以便快速掌握JUnit和单元测试.
基本上我的问题归结为我收到的两条相互矛盾的建议:
1)静力学是邪恶的.不要碰静电.不要测试私有,你可能想要一个类.
2)使用工厂进行创建以允许使用参数进行依赖注入 - 可能允许使用模拟和存根进行隔离.
在我的例子中,我希望执行以下操作:
double height = 223.42; // this was set iterating over a collection of doubles
//blah
HeightBounds b = HeightBounds.getHeightBounds(height);
//more blah
Run Code Online (Sandbox Code Playgroud)
我这样做是为了避免构建一个非常长而复杂的代码块,我只能对其进行全面测试.这样我就可以测试公共可访问对象,以确保系统组件都能正确执行.
常识告诉我,静态工厂没有任何问题,并且它们很容易测试,但是在我学习测试驱动设计时,我是否遗漏了一些令人眼花缭乱的东西?
谢谢
据我所知,你应该使用DataMember属性的Order属性,这样你就可以在不改变顺序的情况下向数据契约添加内容,从而导致事情中断,但是如果你有基类和子类型,你应该如何处理呢?
如果我有这样的数据交换:
[DataContract]
[KnownType(typeof(ChildDto))]
public class BaseDto
{
[DataMember (Name = "Property", Order = 0)]
public string Property { get; set; }
[DataMember (Name = "Property2", Order = 1)]
public string Property2 { get; set; }
}
[DataContract]
public class ChildDto:BaseDto
{
[DataMember (Name = "Property3", Order = 2)]
public string Property3 { get; set; }
[DataMember (Name = "Property4", Order = 3)]
public string Property4 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想添加一个新的数据成员属性BaseDto,我应该给该属性的顺序,以便事情不会中断?或者我不应该添加任何东西BaseDto?我可以添加东西ChildDto吗?
我做了一个hg mv -A oldFile newFile并且意外地弄错了新文件.
我做了一个hg revert newFile但现在显示为缺失的文件(然后在移动命令之后删除)现在根本不再显示.
如何撤消该操作并返回到我所处的状态,以便新文件显示为未知且旧文件显示为缺失?
当我调用我的WCF Soap服务的方法时,会抛出错误并在svlog文件中显示错误:
输入数据协定名称为"消息:http://schemas.datacontract.org/2004/07/xxx.ActiveDirectoryService.classes.WCF "的"xxx.ActiveDirectoryService.classes.WCF.Message" .考虑使用DataContractResolver或将任何静态未知的类型添加到已知类型列表中 - 例如,通过使用KnownTypeAttribute属性或将它们添加到传递给DataContractSerializer的已知类型列表中.
我试图在这里和那里使用KnownType但没有成功(我必须承认我不太确定我100%正确使用它).
这是我的接口/类:
[ServiceContract]
public interface IActiveDirectory
{
[OperationContract]
[WebGet]
void Dummy();
[OperationContract]
[WebGet]
AbstractMessage Dummy2();
[OperationContract]
[WebGet]
AbstractMessage Dummy3();
[OperationContract]
[WebGet]
AbstractMessage SetPassWord(string customer, string customerPassword, string userLogin, string userPassword);
}
[DataContract]
public abstract class AbstractMessage
{
[DataMember]
public virtual bool IsError { get; set; }
[DataMember]
public virtual string ErrorMessage { get; set; }
[DataMember]
public virtual string ReturnValue { get; set; }
}
public class Message : AbstractMessage …Run Code Online (Sandbox Code Playgroud) 我们有一些UI测试使用FlaUI来自动化与Windows UI的交互.
当我们在构建服务器上运行这些测试时,除非有人通过RDP连接,否则它们无法与UI交互.
我们从测试中得到的错误只是一个 Could not send mouse input. ErrorCode: 5
机器设置为在启动时登录用户,如果我们以该用户身份登录到RDP会话并"观察"测试,那么它们运行正常并且可以与桌面交互.一旦我们断开该用户,他们就会再次无法进行交互.
我们使用NCrunch网格节点控制台应用程序通过NCrunch网格节点运行测试,该应用程序在登录时启动(即它不作为服务运行,因此它可以与桌面交互).
有没有办法让测试以一种方式运行,这意味着我们不必持续观察它们?