问题列表 - 第5226页

WCF客户端"使用"块问题的最佳解决方法是什么?

我喜欢在using块中实例化我的WCF服务客户端,因为它几乎是使用实现的资源的标准方法IDisposable:

using (var client = new SomeWCFServiceClient()) 
{
    //Do something with the client 
}
Run Code Online (Sandbox Code Playgroud)

但是,正如本MSDN文章中所述,在using块中包装WCF客户端可能会掩盖导致客户端处于故障状态的任何错误(如超时或通信问题).简而言之,当调用Dispose()时,客户端的Close()方法会触发,但会因为处于故障状态而抛出错误.然后,第二个异常掩盖了原始异常.不好.

MSDN文章中建议的解决方法是完全避免使用using块,而是实例化您的客户端并使用它们,如下所示:

try
{
    ...
    client.Close();
}
catch (CommunicationException e)
{
    ...
    client.Abort();
}
catch (TimeoutException e)
{
    ...
    client.Abort();
}
catch (Exception e)
{
    ...
    client.Abort();
    throw;
}
Run Code Online (Sandbox Code Playgroud)

using块相比,我认为这很难看.每次需要客户端时都需要编写很多代码.

幸运的是,我发现了一些其他的解决方法,例如IServiceOriented上的这个.你从:

public delegate void UseServiceDelegate<T>(T proxy); 

public static class Service<T> 
{ 
    public static ChannelFactory<T> _channelFactory = new ChannelFactory<T>(""); 

    public static void Use(UseServiceDelegate<T> codeBlock) 
    { …
Run Code Online (Sandbox Code Playgroud)

c# vb.net wcf using wcf-client

400
推荐指数
10
解决办法
11万
查看次数

限制访问开发网站的最佳方法是什么?

我有一个我正在努力的网站,我现在只想显示给其他几个网站.设置Windows用户名并使用Windows auth在进入开发站点之前提示用户有什么问题吗?

windows security authentication web

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

具有强类型索引的多维数组的最佳混合方法

我有多么相当于一个多维数组.

int[][][] MyValues;
Run Code Online (Sandbox Code Playgroud)

我想要的是通过强类型的equivelent访问索引,例如枚举.我知道你可以从Enum类型中获取枚举值,但是我的口味有点长.

我宁愿有办法强力键入索引.

例如:

int CarNumber = MyValues[Racetrack.Daytona][Race.Daytona500][Driver.JGordon];
Run Code Online (Sandbox Code Playgroud)

由于它是枚举式的,因此可以防止任何超出范围的异常被抛出,而且它为所有索引提供了一个很好的人类可读意义.

我已经使用字典方法实现了这一点,但它似乎有点沉重:

Dictionary<Racetrack,Dictionary<Race,<Dictionary<Driver,int>>> =
    new Dictionary<Racetrack,Dictionary<Race,<Dictionary<Driver,int>>>();
Run Code Online (Sandbox Code Playgroud)

然后我可以通过枚举访问,但我真的不喜欢这种方法.这看起来很"难看".

我正在寻找一些替代方法,在使用人类可读的索引器时表示基本上是多维数组,同时保持类型安全(例如,不能无意中使用Race作为Race,所以简单地使用consts不是好方法).

有什么建议?

这将是一个编译时数组(上面的例子不是真实的,只是一个例子)所以我不必担心插入或删除或其他操作的数组.它将在价值,大小和布局方面保持不变.

使用带有const值的静态类也不是一个好方法,因为它不强制只有定义的值集可以作为索引器传递.

c# collections data-structures

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

用于多重继承?

谁能想到使用多重继承的任何情况?我能想到的每个案例都可以通过方法运算符来解决

AnotherClass() { return this->something.anotherClass; }
Run Code Online (Sandbox Code Playgroud)

oop multiple-inheritance

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

在python中使用wget(错误代码帮帮我)

继承我的代码.

import os, sys
if len(sys.argv) != 2:
     sys.exit(1)

h = os.popen("wget -r %s") % sys.argv[1]
fil = open("links.txt","w")
dir = os.listdir("%s") % sys.argv[1]

for file in dir:
     print file.replace("@","?")
     fil.write("%s/"+file.replace("@","?")) % sys.argv[1]
     fil.write("\n")
h.close()
Run Code Online (Sandbox Code Playgroud)

运行它,就像这个python project.py http://google.com

给我错误代码.

1.py:5 RuntimeWarning: tp_compare didnt return -1 or -2 for exception
h = os.popen("wget -r %s") % sys.argv[1]
Traceback (most recent call last):
File "1.py" line 5, in <module>
h = os.popen("wget -r %s") % sys.argv[1]
TypeError: unsupported operand type<s> for %: …
Run Code Online (Sandbox Code Playgroud)

python

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

何时使用Request.Cookies而不是Response.Cookies?

我是否在页面事件(例如加载)时使用响应,因为这是来自ASP.NET的响应,并且在按下按钮时请求,因为这是对ASP.NET进行处理的响应?或者还有更多吗?

c# asp.net

59
推荐指数
3
解决办法
9万
查看次数

SQL Server Express对于开发人员来说是否足够好,还是应该获得开发人员版本?

只是想知道开发人员是否值得使用SQL Server 2005/2008 Developer Edition而不是Visual Studio附带的捆绑SQL Server Express版本.我正在谈论网站的初始开发,你需要创建SQL脚本来生成表格和类似的东西.我知道使用Express可以很容易地将一个.mdf文件添加到你的项目和程序中,但是安装开发人员版本和程序对于一个模拟你将要在生产中使用的"真实"数据库不是更好的?这样,如果您正在使用VS Professional并且可以创建"数据库项目",则可以包含所有创建脚本并在生产中运行它们以重新创建环境.

sql-server

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

iPhone SDK:loadView和viewDidLoad有什么区别?

在iPhone应用程序中使用视图和视图控制器时,任何人都可以解释loadView和viewDidLoad之间的区别吗?

我个人的背景是,我从代码构建我的所有视图,我不会,也不会使用Interface Builder,如果这有任何区别.

我发现通常当我将初始化代码添加到loadView时,我最终会得到一个无限的堆栈跟踪,所以我通常在viewDidLoad中完成所有的子视图构建...但是每次执行时我都不清楚它,并且什么是更适合放置init代码的地方.什么是完美的,是一个简单的初始化调用图.

谢谢!

iphone objective-c uiview ios

136
推荐指数
4
解决办法
6万
查看次数

如何打印java类垃圾收集事件?

java version "1.5.0_14"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_14-b03)
Java HotSpot(TM) Server VM (build 1.5.0_14-b03, mixed mode)

我正在尝试调试NullPointerException,我将传递对静态定义字段的引用.更具体地说,我在Drools3工作内存实例上设置了一个全局.

workingMemory.setGlobal("log", workingMemorieslog);
Run Code Online (Sandbox Code Playgroud)

我的假设是静态收集字段静态的类.(接收类必须使用WeakReference或类似的东西,我真的不知道)

你会如何建议调试这个?我想如果我能确切知道JVM的GC何时卸载类的类/实例,那么我可以缩小错误行为的原因.(如果不是事件的确切时间,至少得到某事确实发生的迹象).

谢谢你,马克西姆.

java eclipse classpath

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

如何更改UIPickerView高度

是否可以更改UIPickerView的高度?某些应用程序似乎有较短的PickerViews,但设置较小的框架似乎不起作用,框架在Interface Builder中被锁定.

iphone cocoa-touch uipickerview uikit ios

113
推荐指数
11
解决办法
13万
查看次数