草庐IT

dll-interface

全部标签

c# - 不需要的文化特定 dll 复制到 bin 目录

我正在使用visualstudio2013&FluentValidation5.6.2我看到在bin文件夹中构建后,它复制了所有特定于文化的FluentValidation.resources.dll这似乎在.nuspec文件中提到了>target="lib\NET35\de\FluentValidation.resources.dll"/>>>>>>>但我不需要在bin文件夹中放置这些,因为项目不支持任何特定于文化的消息。那么我如何告诉vs-build忽略这些特定于文化的dll? 最佳答案 我的解决方案是将此目标添加到.cspro

c# - 自动创建一个包装器来实现一个接口(interface)

我有一些不实现特定接口(interface)但在结构上符合该接口(interface)的类。interfaceIFoo{voidmethod();}classBar{//doesnotimplementIFoopublicvoidmethod(){...}}现在,我可以围绕那些简单地委托(delegate)给包装类的类编写一个包装器classBarWrapper:IFoo{Barbar=newBar();publicvoidmethod(){bar.method();}}但这是一项繁琐的工作。这些包装类可以以某种方式自动生成吗?像这样的东西:IFoofoo=CreateWrapper(

具有插件之间共享接口(interface)的 C# 插件架构

我将我的问题分为短版和长版,供手头时间不多的人使用。精简版:我需要一些具有提供者和消费者插件的系统的架构。提供者应该实现接口(interface)IProvider,消费者应该实现IConsumer。正在执行的应用程序应该只知道IProvider和IConsumer。消费者实现可以询问正在执行的程序集(通过ServiceProcessor)哪些提供者实现了InterfaceX并返回一个List。这些IProvider对象应该被转换为InterfaceX(在消费者中),以便能够将消费者Hook到InterfaceX定义的某些事件上。这将失败,因为执行程序集不知何故不知道此Interfac

C#接口(interface)继承

给定:publicinterfaceIA{voidTestMethod();}publicinterfaceIB:IA{}为什么:typeof(IB).GetMethods().Count()==0;?明确一点:publicclassA{publicvoidTestMethod(){}}publicclassB:A{}typeof(B).GetMethods().Count();有效(它返回5);作为奖励:typeof(IB).BaseType==null 最佳答案 这是获取IA和IB计数的代码:varibCount=typeof(

c# - 为什么通用接口(interface)在默认情况下不是协变/逆变的?

例如IEnumerable界面:publicinterfaceIEnumerable:IEnumerable{IEnumeratorGetEnumerator();}在此接口(interface)中,泛型仅用作接口(interface)方法的返回类型,不用作方法参数的类型,因此它可以是协变的。鉴于此,编译器理论上不能从接口(interface)中推断出差异吗?如果可以,为什么C#要求我们显式设置co/contravariance关键字。更新:正如JonSkeet提到的,这个问题可以分解为子问题:编译器能否通过在当前泛型类型及其所有基类型中使用泛型类型来推断泛型类型的协变/逆变?例如..

c# - 如何检查 COM 组件(EXE/DLL 文件)是否已注册(使用 .NET)?

这个问题在这里已经有了答案:HowtocheckifaDLLfileisregistered?(7个答案)关闭7年前。如何使用.NET检查COM组件(EXE/DLL文件)是否已注册?

c# - 如果我重建我的项目引用的 dll,我是否也必须重建该项目?

我一直在编写这个程序(FOO),它包含对dll(BAR)的引用。BAR包含的所有方法都是执行各种不同计算的方法。FOO将能够在多台计算机上安装和部署。我的问题是,如果我更改其中一种方法中的公式(即将x+y更改为x-y),我是否需要重建FOO反对新的BAR?更重要的是,只部署新版本的BAR是否安全? 最佳答案 @vcsjones的评论在这里提出了一个重要观点。当且仅当程序集版本没有改变并且您没有使用强命名程序集时,您可以放入新的DLL作为替换。如果版本确实发生变化,那么您可能会收到运行时错误,因为您的程序会尝试加载特定版本并获得与预期

c# - 只允许为特定类实现接口(interface)

是否可以只允许一些特定的类来实现一个接口(interface)?假设我创建了接口(interface)IMyInterface并且我只希望派生自UserControl的类能够实现我的接口(interface)。这可能吗? 最佳答案 你不能,但你可以通过向你的接口(interface)添加一个Control属性来实现类似的东西,并且按照惯例让所有的实现返回this。不能解决您的问题,但会让实现者思考接口(interface)是否真的属于那里。还允许界面的用户以类型安全的方式检索控件而无需强制转换。interfaceIMyInterfa

c# - 覆盖接口(interface)中声明的方法实现

我有一个接口(interface),里面有几个方法。interfaceIMyInterface{//...voidOnItemClicked()//...}和一个实现classMyClass:IMyInterface{//OthermethodspublicvoidOnItemClicked(){/*...*/}}现在,我想要一个行为类似于MyClass的类,除了OnItemClicked()之外,我想对该方法进行一些修改。我想继承覆盖但我不想更改MyClass(例如:publicvirtualvoidOnItemClicked()。..)因为它不是我的实现,我不想再次实现IMyInt

c# - 在 Visual Studio 中调试第三方 DLL?

我正在使用第三方DLL。对于某些特定情况,DLL中的函数抛出异常。是否可以在VisualStudio中调试DLL?在theanswerfromAndrewRollings之后,我可以查看代码,但是有什么简单的方法可以通过VisualStudio中的代码进行调试吗? 最佳答案 如果DLL在.NET中语言,你可以使用像.NETReflector这样的工具反编译它然后针对源代码进行调试。或者您可以询问供应商是否提供源代码。这可能是最简单的方法。 关于c#-在VisualStudio中调试第三方