小编np-*_*ard的帖子

检测异步BeginExecuteReader中的命令取消

我正在异步调用sql命令的beingexecutereader方法,用户可以取消.当取消发生时,我取消sqlcommand对象,这将杀死sql server上正在执行的作业.

但是,一旦我取消它,就会调用BeginExecute查询中指定的回调方法,并在尝试调用endexecutequery时出错.结果.Iscompleted是真的,直到调用了endexecute查询,此时它变为false.

有没有办法在回调方法中检测到该命令被取消了?或者我必须跟踪那个......

谢谢

c# ado.net

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

检测类型是否实现ICollection <T>

我试图检查一个类型是否实现了通用ICollection <T>接口,因为这是我的任何通用集合的基本接口.

以下代码不起作用

GetType(ICollection(Of)).IsAssignableFrom(
    objValue.GetType().GetGenericTypeDefinition())
Run Code Online (Sandbox Code Playgroud)

检测类型是否实现通用接口的好方法是什么?

.net c# vb.net reflection

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

自定义AppDomainManager无法启动runtimeHost

我有以下appDomainManager代码

public class HostAppDomainManager : AppDomainManager
{
    public override void InitializeNewDomain(AppDomainSetup appDomainInfo)
    {
        this.InitializationFlags = AppDomainManagerInitializationOptions.RegisterWithHost;
    }
}
Run Code Online (Sandbox Code Playgroud)

并遵循用于启动运行时主机的非托管代码

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    ICLRMetaHost *pMetaHost       = NULL; 
    HRESULT hr;  
    ICLRRuntimeInfo *runtimeInfo = NULL;     
    __try 
    { 
        hr = CLRCreateInstance(CLSID_CLRMetaHost, IID_ICLRMetaHost, (LPVOID*)&pMetaHost); 
        hr = pMetaHost->GetRuntime(L"v4.0.30319",IID_ICLRRuntimeInfo,(LPVOID*)&runtimeInfo); 
        ICLRRuntimeHost *runtimeHost  = NULL; 
        hr = runtimeInfo->GetInterface(CLSID_CLRRuntimeHost,IID_ICLRRuntimeHost, (LPVOID*)&runtimeHost);     
        ICLRControl* clrControl = NULL; 
        hr = runtimeHost->GetCLRControl(&clrControl); 
        hr = clrControl->SetAppDomainManagerType(L"ExceptionThrower.dll",L"ExceptionThrower.HostAppDomainManager");
        hr = runtimeHost->Start();  
    } 
    __except(1) 
    { 
        wprintf(L"\n Error thrown %d",e); 
    } 
    return 0; 
} 
Run Code Online (Sandbox Code Playgroud)

对runtimeHost-> Start()的调用失败,错误代码为-2146233054,cansomeone指出我应该怎么做才能解决这个问题?

c# .net-4.0 clr-hosting

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

wcf暴露泛型

我有一个客户端和服务器共享类型的应用程序,互操作性不是我们关注的问题之一.我打算为所有支持Web的对象创建一个存储库,我正在考虑为我的公开服务提供通用接口.

像T GetObject(int id)之类的东西

但是wcf不喜欢它,因为它试图暴露它的架构(我真的不关心)

是否有可能用WCF做这样的事情?,我可以使用任何类型的绑定不必是httpbinding或wsbinding ...

generics wcf wcf-binding

5
推荐指数
2
解决办法
4330
查看次数

城堡动态代理创建

我正在实现一个设计,我的图层将位于客户端和服务器之间,无论我从服务器获取什么对象,我都会将其包装在透明代理中并提供给客户端,这样我就可以跟踪对象中的更改内容,所以当保存它时,我只会发送更改的信息.

我查看了城堡动态代理,linfu,虽然他们可以生成代理类型,但他们不能接受现有的对象并换行.

想知道它是否可以使用这些框架,或者是否有任何其他框架可以实现这一点......

c# castle-dynamicproxy linfu

5
推荐指数
2
解决办法
2023
查看次数

什么时候应该在WPF中提取UserControl

在我们的工作中,我们有一个争议正在进行,有些人想要创建用户控件,结合常用的控件,如标签和文本框,或标签和图像控件.就是这样的:

<StackPanel Orientation="Horizontal">
    <Image Source="/Someimage/Somewhere.gif"/>
    <Label>Some text, hyperlink, or other content</Label>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

并像这样使用它

<ImageLabel
    HeaderImageSource="/Someimage/Somewhere.gif"
>
    Some text, hyperlink, or other content
</ImageLabel>
Run Code Online (Sandbox Code Playgroud)

问题是,他们是否提供足够的封装和抽象来值得单独的用户控制?

wpf user-controls

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

WCF ServiceRoute和Tcp

我有一个在IIS中托管的WCF应用程序,我使用WsHttpBinding和aspnetCompatibility,因为我想使用RouteTable功能将多个调用路由到单个服务.

每件事都按预期工作,这里没有问题.

然后我添加了一个tcp端点到服务(使用其原始URL),并使用客户端调用服务,一切都在这里工作,没有问题.

然后我用路由url修改了客户端url,并使用tcp端点调用了方法,我得到了套接字错误,这是我的预期.

但后来我使用路由的url运行了wsHttp客户端(工作正常),并使用路由的url运行tcp客户端(这令人惊讶地工作)

tcp请求和http请求是否通过同一个管道路由?

c# wcf

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

实例化一个新的stl向量

我有一个情况,我有一个指向stl向量的指针

所以喜欢

vector<MyType*>* myvector;
Run Code Online (Sandbox Code Playgroud)

我必须在构造函数中将此指针设置为NULL,然后在触摸属性时延迟加载.

我如何将其实例化为向量的新实例?

c++ stl

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

Windows批处理文件过早终止

我有一个以下的批处理文件

echo Setting  visual studio 2010 environment variables
set VSPATH="C:\Program Files (x86)\Microsoft Visual Studio 10.0"
%VSPATH%\VC\vcvarsall.bat

echo Generating Service
Run Code Online (Sandbox Code Playgroud)

"生成服务"行永远不会打印出来,有人可以指出它应该如何完成,以便批处理文件继续执行吗?

batch-file

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

通过引用传递不工作

我有以下代码

public interface IEntity
{
// Properties
    int Id { get; set; }
}

public class Container : IEntity
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class Command
{      
    public void ApplyCommand(ref IEntity entity)
    {
        Container c = new Container() { Id = 20 };
        entity = c;
    }
}

[TestFixture]
public class ReferenceTest
{
    [Test] 
    public void Casting_ByRef_Not_ReturningValue()
    {
        Container c= new Container();
        IEntity entity = c;
        new Command().ApplyCommand(ref …
Run Code Online (Sandbox Code Playgroud)

c#

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