问题列表 - 第29433页

模拟对象与测试数据库

与具有已知数据的静态测试数据库相比,使用模拟对象的优势是什么,并且在对数据库进行测试时使用事务确保没有任何更改.

unit-testing mocking

12
推荐指数
2
解决办法
3014
查看次数

c ++中的安全整数转换

我想使用c ++模板创建一个简单的整数范围检查器和转换器.
代码如下所示:

// D is the "destination" type and S the "source" type
template <class D, class S>
inline D SafeConvert( S value );

template <class S>
inline int SafeConvert<int>( S value ) {

    ASSERT( value >= S(INT_MIN) && value <= S(INT_MAX) );
    return int(value);
} /// error C2768: 'SafeConvert' : illegal use of explicit template arguments


template <class S>
inline size_t SafeConvert<size_t>( S value ) {

    ASSERT( value >= S(0) && value <= S(size_t(-1)) );
    return size_t(value);
} …
Run Code Online (Sandbox Code Playgroud)

c++ templates

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

com.google.gwt.dev.util.collect.*中定义的集合类的用途是什么?

我不小心使用com.google.gwt.dev.util.collect了客户端代码中的包下定义的HashSet和HashMap .发现包没有模块xml文件,因此这些集合类不应在客户端使用.

如果不在客户端软件包中使用这些类,那么在GWT SDK中使用这些类的目的是什么?这些类肯定有一些好处,值得包含在SDK中.

我错过了什么?

gwt gwt2

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

为什么在定义接口的方法和属性前面没有修饰符(public,private,protected)?

可能重复:您
是否有理由无法在方法或界面中定义访问修饰符?

你好,

我对接口感到好奇.假设我有以下界面的定义

public interface IPersone
{
  string FirstName { get; set; }
  string LastName { get; set; }
  int CalculateAge(int YearOfBirth);
}
Run Code Online (Sandbox Code Playgroud)

为什么在定义接口的方法和属性前面没有修饰符(public,private,protected)?有什么理由吗?

谢谢你的帮助

c#

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

.NET中的依赖注入和加载依赖程序集

我正在使用依赖注入(从现在开始的DI)来解析组件,并且正在寻找在.NET环境中加载相关程序集的优雅解决方案.作为解释,假设我们有3个组件,A,B和C,其中A依赖于B而B依赖于C.现在我需要从组件A加载组件,但因为我使用DI,我不有一个对程序集A的引用.甚至对程序集A的引用也是不够的,因为我不知何故需要确保A,B和C都在我的输出目录中结束.

因此,一些明显的解决方案是:
- 从执行的应用程序添加对A,B和C的引用:需要知道依赖结构,在我的情况下,这是非常复杂的,这使得这是一个有点不受欢迎的解决方案.
- 将这些dll添加到GAC:在我的情况下,这不是一个选项.


所以我想知道是否有人对这个问题有一个优雅的解决方案.不确定它是否相关,但我正在使用Castle Windsor进行DI.

谢谢
Joni

dependencies assemblies dependency-injection castle-windsor

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

php中的比较运算符重载

有可能在php中重载== /!=运算符,类似于它在.NET中的运行方式吗?

php

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

如何确定给定.NET程序集使用的子系统?

在C#应用程序中,我想确定另一个.NET应用程序是否是控制台应用程序.

可以使用反射API完成吗?

编辑:好的,看起来我不会得到这个问题的好答案,因为它看起来不像框架暴露我想要的功能.我在PE/COFF规范中挖掘并提出了这个:

/// <summary>
/// Parses the PE header and determines whether the given assembly is a console application.
/// </summary>
/// <param name="assemblyPath">The path of the assembly to check.</param>
/// <returns>True if the given assembly is a console application; false otherwise.</returns>
/// <remarks>The magic numbers in this method are extracted from the PE/COFF file
/// format specification available from http://www.microsoft.com/whdc/system/platform/firmware/pecoff.mspx
/// </remarks>
bool AssemblyUsesConsoleSubsystem(string assemblyPath)
{
    using (var s = new FileStream(assemblyPath, FileMode.Open, FileAccess.Read))
    {
        var rawPeSignatureOffset = …
Run Code Online (Sandbox Code Playgroud)

c# reflection

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

在C#中设置MimeType

有没有一种更好的方法来设置C#中的mimetypes而不是我想要提前感谢的那种.

static String MimeType(string filePath)
{
  String ret = null;
  FileInfo file = new FileInfo(filePath);

  if (file.Extension.ToUpper() == ".PDF")
  {
    ret = "application/pdf";
  }
  else if (file.Extension.ToUpper() == ".JPG" || file.Extension.ToUpper() == ".JPEG")
  {
    ret = "image/jpeg";
  }
  else if (file.Extension.ToUpper() == ".PNG")
  {
    ret = "image/png";
  }
  else if (file.Extension.ToUpper() == ".GIF")
  {
    ret = "image/gif";
  }
  else if (file.Extension.ToUpper() == ".TIFF" || file.Extension.ToUpper() == ".TIF")
  {
    ret = "image/tiff";
  }
  else
  {
    ret = "image/" + file.Extension.Replace(".", ""); …
Run Code Online (Sandbox Code Playgroud)

c#

11
推荐指数
3
解决办法
2万
查看次数

德尔福堆栈错位+ com编组=错误的编组

这不是一个直截了当的问题,因为我刚刚解决了它,但更像是"我是否正确"这类问题,并提醒那些可能会陷入困境的人.

事实证明,Delphi没有在堆栈上对齐变量,也没有指令/选项来控制这种行为.我的XP SP3上的默认COM编组器在编组记录时似乎需要4字节对齐.更糟糕的是,当它遇到未对齐的指针时,它不会返回错误,哦不:它将指针向下舍入到最近的4字节边界并继续这样做.

因此,如果您通过引用将已经在堆栈上分配的记录传递给COM编组功能,那么您就会被搞砸,甚至不知道.

这个问题可以通过使用New/Dispose来分配记录来解决,因为内存管理器倾向于将所有内容对齐为8个字节或更好,但是上帝,这很烦人,未对齐部分和"修剪指针"部分.

这真的是原因,还是我错了?

更新:如何重现(Delphi 2007 for Win32).

uses SysUtils;

type
  TRec = packed record
    a, b, c, d, e: int64;
  end;

  TDummy = class
  protected
    procedure Proc(param1: integer);
  end;

procedure TDummy.Proc(param1: integer);
var a, b, c: byte;
  rec: TRec;
begin
  a := 5;
  b := 9;
  c := 100;

  rec.a := param1;
  rec.b := a;
  rec.c := b;
  rec.d := c;
  writeln(IntToHex(integer(@rec), 8));
  readln;
end;

var Obj: TDummy;
begin
  obj := TDummy.Create;
  try
    obj.Proc(0);
  finally
    FreeAndNil(obj); …
Run Code Online (Sandbox Code Playgroud)

delphi com

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

C#Tika的替代品

任何知道TiKa的任何C#替代都能从HTML,PDF等中提取文本.?

c#

11
推荐指数
2
解决办法
7712
查看次数