草庐IT

dll-interface

全部标签

c# - 实现接口(interface)的好处

在C#3.5中实现接口(interface)有什么好处? 最佳答案 您将能够将对象传递给需要接口(interface)作为参数的方法(或满足类型约束)。C#不支持“ducktyping”。仅仅通过编写接口(interface)定义的方法,对象不会自动与接口(interface)类型“兼容”:publicvoidPrintCollection(IEnumerablecollection){foreach(varxincollection)Console.WriteLine(x);}如果List没有实现IEnumerable接口(int

c# - 在 C# 中与 getter 和 setter 接口(interface)

正如我在这里阅读的http://msdn.microsoft.com/en-us/library/75e8y5dd%28v=VS.100%29.aspx有可能在接口(interface)中有get而不是set吗?或者如果我想在接口(interface)中使用getter和setter,我是否必须使用旧语法getVarsetVar只是因为新语法不适合接口(interface)语法?更新:如果我必须在接口(interface)中省略set,这是否意味着我不能强制类拥有setter,这违背了在这种情况下拥有接口(interface)的目的,因为我只能部分强制执行?

c# - System.Drawing.dll 中出现类型为 'System.ApplicationException' 的未处理异常

我有一个winforms应用程序。在开发模式下,当从VisualStudio.NET2003进行调试时(是的,我知道它很旧,但这是一个遗留项目),当我尝试打开一个新窗体时出现此错误。为了打开一个新表单,我获取了该表单的一个实例,然后我调用了ShowDialog()方法,例如:frmTesttest=newfrmTest(heremyparameters);test.ShowDialog();如果我在调试时按F11(进入)它不会崩溃,但如果在我实例化表单的行中我按F10进入下一行,即test.ShowDialog(),那么它会崩溃显示这个错误。完整的报错是:"Anunhandledexc

c# - 如何将构建限制为仅支持 EN "Microsoft.Expression.Interactions.resources.dll"并避免 DE、KR、FR、ES 等...?

当我构建我的WPF项目时,它会创建几个语言文件夹,每个文件夹都包含“Microsoft.Expression.Interactions.resources.dll”。奇怪的是,我从未将我的资源字符串翻译成其他语言,但它仍然会创建DE、KR、FR、ES文件夹。我只需要英文。如何将本地化限制为仅EN? 最佳答案 您看到这些文件是因为您正在使用适用于.NET的BlendSDK(直接或通过Prism库)。该SDK包含本地化资源,因此它们包含在您的构建输出中。Here'showyoucreateaSilverlightbuildthattar

C# 孙项目 DLL 未包含在 msbuild 包中

我有一个C#项目X,它引用一个C#项目Y,该项目Y引用一个C#项目Z。所以依​​赖链看起来像这样:X=>Y=>Z。没有直接/显式依赖X=>Z。当我使用msbuild命令构建要发布的包时msbuildDesignService.csproj/m/p:Configuration="Debug"/p:Platform="AnyCPU"/verbosity:quiet/t:Package/p:PackageLocation=X.zip/p:PackageAsSingleFile=True我得到一个zip文件,其中包含X和Y的DLL,但没有Z。然后当包发布(到Azure应用服务)时,调用Z中的代

c# - 使用带有损坏引用的 .net DLL

我必须在我的应用程序(C#、.NET4.5)中使用DLL作为API。我可以正常引用DLL。完全没有错误。但是如果我想使用这个DLL的任何类,我会得到以下编译错误:ErrorCS1705Assembly'Assembly_X'withidentity'Assembly_X,Version=12.3.0.0,Culture=neutral,PublicKeyToken=c878e80841e75d00'uses'Assembly_YY,Version=65535.65535.65535.65535,Culture=neutral,PublicKeyToken=c878e80841e75d0

c# - 在 Visual Studio C# 解决方案中将 DLL 引用替换为项目依赖项的项目引用

是否可以在VisualStudioC#/VB.NET解决方案中以编程方式将DLL引用替换为项目依赖项的项目引用?背景:我正在处理一些遗留代码,其中每个项目的依赖项大多被引用为已编译的DLL,而不是在解决方案中包含相应项目的项目引用,甚至更糟-直接从GAC引用!现在,对于数十个项目中的每个解决方案,我必须手动删除每个DLL引用并将其替换为来自VSUI的项目引用。由于GUID,编辑项目/解决方案XML.cs​​proj/.sln文件并不简单:False...\MyDLL.dll{3cc27830-3d6b-4071-85e5-5a4006f11142}MyDLL

C#:通过显式指定接口(interface)来覆盖属性

在尝试覆盖ICollection.IsReadOnly的显式接口(interface)实现时来自Collection的属性(property)类,我遇到了一些文档,指出显式接口(interface)成员实现不能被覆盖,因为它们不能有诸如virtual之类的修饰符。或abstract.在MSDN他们甚至指定如何通过创建另一个由显式接口(interface)成员实现调用的抽象或虚拟成员来使显式接口(interface)成员实现可用于继承。到目前为止没有问题。但后来我想知道:为什么在C#中可以通过显式指定接口(interface)来覆盖任何显式实现的接口(interface)成员?例如,假设

c# - 不能为接口(interface)模拟传递构造函数参数

当我调试代码并阅读创建mockLessonplannerAFactory的行时,我收到错误:Constructorargumentscannotbepassedforinterfacemocks.varmockSchoolclassCodeService=newMock();varmockDateService=newMock();varmockLessonplannerAFactory=newMock(mockDateService.Object);varmockLessonplannerBFactory=newMock(mockDateService.Object);varserv

c# - 使用 Web API 的模型绑定(bind)接口(interface)属性

我有一个看起来像这样的命令:publicinterfaceICommand{//Justamarkerinterface}publicinterfaceIUserAware{GuidUserId{get;set;}}publicclassCreateSomething:ICommand,IUserAware{publicstringTitle{get;set;}publicGuidUserId{get;set;}}REST请求是:PUT/createHTTP/1.1UserId:7da6f9ee-2bfc-70b1-f93c-10c950c8f6b0//PossibleanAuthto