小编Fad*_*oof的帖子

引用第三方程序集的最佳实践

我一直想知道在引用第三方程序集时最佳做法是什么.前一段时间我问了一个问题" 依赖关系和参考文献:我究竟应该参考什么"并且接受了一些思考,但我并不完全相信.我有一个第三方组装需要建立我的项目,根据我到目前为止所读到的,我应该只参考构建我的项目所需的组件.这留下了问题第三方程序集的运行时依赖项.如果我引用它们,引用列表也会变得很大(因为有几个依赖项)并且包含很多程序集,我不知道什么做了,哪些与我的项目无关.我也是我想避免在任何这些方法中使用公共方法,只使用主要的第三方程序集.我怎样才能以合适的方式做到这一点?任何帮助都会受到赞赏,因为我很困惑.

为了让我知道我在这里处理的是第三方库使用hibernate和log4net以及办公室互操作程序集.

谢谢.

.net dependencies

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

是否可以从.net webservices返回接口,还是只能返回具体的类?

我需要从webservice返回一个复杂类型,并构造了MyComplexType类,它实现了IMyComplexType接口.现在在我的webservice中,我有一个方法应该返回一个实现IMyComplexType的对象,如下所示:

[WebMethod]
public IMyComplexType GetMyComplexType()
{
   IMyComplexType myCt = new MyComplexType();
   ...
   return myCt; 
}
Run Code Online (Sandbox Code Playgroud)

一切都编译好,但是当我运行webservice时,它会抛出一个异常,如下所示:

System.NotSupportedException: Cannot serialize interface MyWebService.IMyComplexType.
Run Code Online (Sandbox Code Playgroud)

这是设计还是我遗漏了一些东西.我可以以某种方式装饰我的类或界面以允许这个吗?我是否必须消除所有接口,并且只能使用具体的,也许是抽象的基类来使用.net webservices来实现这一点?

编辑:

这是我尝试序列化的接口:

public interface ICustomer
{
     long Id {get; set;}
     string Name {get; set;}
     string EmailAddress {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

.net web-services interface

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

依赖关系和参考资料 - 我应该参考什么?

我想知道在构建我的项目时要包括什么.我有一个库,我需要参考我的项目来构建,但该库本身有10个依赖项.我是否应该引用这些依赖项,还是应该使用post build事件将它们复制到输出目录?

什么是最佳做法?

我发现包含所有这些依赖项令人困惑,因为项目在没有它们的情况下编译得很好 - 它们是否被称为运行时依赖项?我的引用变得杂乱,依赖性与我的项目无关,即使它们被用在我所包含的某些库中.

我正在使用Visual Studio.

有人可以给我一些有关如何做到这一点的见解.

谢谢.

.net reference build

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

包含using语句的单元测试方法

我想知道Unittesting和using语句是否真的可以齐头并进,因为无法模拟在using语句中实例化的一次性对象.我如何能够有效地单元测试包含以下using语句的方法?

public void MyMethod()
{
   using(MyDisposableClass disp = new MyDisposableClass())
   {
       ...
   }
}

在进行单元测试时,是否仅使用语句被禁止?

任何评论赞赏.

.net unit-testing dispose

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

我应该在发布时分发log4net吗?

我想知道什么是最佳实践,涉及到依赖关系以及应该如何完成发布.在我的情况下,我有一个依赖于log4net的库,我想知道是否应该发布log4net.dll(将log4net引用设置为copy local)以及该版本?

我可以简单地说明应该在GAC中安装log4net吗?

.net log4net dependencies release release-management

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

调试时是否可以从目标目录启动外部程序?

调试时我需要从构建的目标目录启动一个外部程序,我想知道它是否可以使用相对路径来完成.

作为一个后期制作活动,我有以下内容:

IF NOT "$(ConfigurationName)"=="Debug" GOTO End
:CopyExecutable
copy "$(SolutionDir)\Source\Lib\MyExecutable.exe" "$(TargetDir)"
:End

我需要在调试时运行MyExecutable.exe,因此在项目属性的调试选项卡中,我将"启动外部程序"设置为MyExecutable.exe,但在运行调试时出现故障.似乎我需要为此工作提供完整的路径.

有没有办法使用相对路径来做到这一点?

debugging visual-studio

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

包含文件系统调用的单元测试方法

我有一个方法,我想单元测试,其中有文件系统调用,我想知道如何去做.我已经查看了具有文件系统依赖性的单元测试代码,但它没有回答我的问题.

我正在测试的方法看起来像这样(c#)

public void Process(string input)
{
    string outputFile = "output.txt";
    this.Transform(input, Resources.XsltFile, outputFile);
    if ((new FileInfo(outputFile)).Length == 0)
    {
        File.Delete(outputFile);
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在模拟Transform(..)方法不向文件输出任何内容,因为我正在对Process方法进行单元测试而不是Transform(..)方法,因此不存在output.txt文件.因此if检查失败.

我该怎么做呢?我应该在文件io周围创建一些包装器,我也会模拟出来吗?

file-io unit-testing

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