草庐IT

dll-interface

全部标签

c# - WCF DataContract 与 DataContract 接口(interface)

WCF新手。DataContact类可以继承自Interface吗?例如:[DataContract(Namespace=...........)]publicclassVesselSequence:IVesselSequence{[DataMember]publicintAllocationId{get;set;}[DataMember]publicstringScenarioName{get;set;}}interfaceVesselSequence:IVesselSequence{publicintAllocationId{get;set;}publicstringScenari

c# - C# 中具有显式接口(interface)的对象初始值设定项

如何在C#中使用具有显式接口(interface)实现的对象初始值设定项?publicinterfaceIType{stringProperty1{get;set;}}publicclassType1:IType{stringIType.Property1{get;set;}}...//doesn'tworkvarv=newType1{IType.Property1="myString"}; 最佳答案 你不能。访问显式实现的唯一方法是通过转换为接口(interface)。((IType)v).Property1="blah";理论上

c# - 为什么 Urlmon.dll 的 FindMimeFromData 函数会为许多文件类型返回 MIME 类型 “application/octet-stream”?

为什么Urlmon.dll的FindMimeFromData函数会为许多文件类型返回MIME类型“application/octet-stream”,而通过文件扩展名(即针对Windows注册表)检查MIME类型会返回更精确的类型?例如,mp3是“application/octet-stream”而不是“audio/mp3”。基本上,我想验证一个扩展名不正确的上传文件。这种方法似乎适用于许多图像文件、xml等。问题类似于thisone,但提供的解决方案不适合验证上传的文件,因为返回了不同/不明确的MIME类型。 最佳答案 阅读Fin

c# - 如果接口(interface)调用 Dispose 的实现是否是泄漏抽象

考虑这段代码:publicclassMyClass(){publicMyClass(){}publicDoSomething(){using(varservice=newCustomerCreditServiceClient()){varcreditLimit=service.GetCreditLimit(customer.Firstname,customer.Surname,customer.DateOfBirth);}}}我们现在想重构它以松耦合。我们最终得到这个:publicclassMyClass(){privatereadonlyICustomerCreditServices

c# - "skipped loading symbols for ngen binary"用于 C# dll

我正在尝试从nativeC++可执行文件调试C#dll。我有一个C#COM对象,它通过IDispatch从native代码加载和运行。一切都在调试中构建,包括C#和C++代码。虽然我可以看到所有的c++代码,并且所有的c++dll都加载了它们的符号并可用于调试、断点等,但C#代码拒绝播放。我看到的是C#dll都拒绝加载它们的符号pdb,并在模块窗口中报告“skippedloadingsymbolsforngenbinary”。顺便说一句,我在这里调试C#解决方案,我在COM项目的调试设置中将native可执行文件设置为“启动外部程序”。现在我可以启动C++可执行文件,然后附加到它,然后

c# - 如何使用 Moq 为接口(interface)模拟 `object.Equals(object obj)`

我有一个有趣的问题要解决。考虑像这样的一些接口(interface):publicinterfaceIMyThing{intId{get;}}现在我想测试使用这个接口(interface)的代码。也许有一些LINQ魔法。像这样:publicclassSomeClass{privateIMyThing_thing;...publicboolHasThing(IEnumerablethings){returnthings.Contains(_thing);}}我正在模拟所有实现IMyThing的对象使用Moq:publicstaticIMyThingMockMyThing(intnewId

c# - 使用不同版本的引用 DLL

不知何故,我很幸运,从来没有遇到过这个问题,尽管我认为这是一个常见的问题:我有一个网络项目,我们称它为SomeProject。SomeProject引用了第3方库,我们称它为SomeThirdParty,版本1.0。SomeProject还引用了一个本地类库,我们称它为SomeLibrary。SomeLibrary也有对SomeThirdParty的引用,但版本不同(比如2.0)。SomeThirdParty的1.0版和2.0版共享大部分相同的签名,但实现方式不同。如果可能,我需要SomeProject来使用1.0实现,并且需要SomeLibrary来使用2.0实现。我编译SomePr

c# - 为 .dll 生成初始化代码

我最近听说.dll可以在加载后立即运行代码,例如,当加载引用.dll的应用程序时。尽管我自己做了一些测试并尝试在这里和在Google上寻找答案,但我无法找到某种方法来为.dll生成初始化方法。我想知道当应用程序加载.dll时是否真的可以运行代码。如果可以,我该怎么做? 最佳答案 警告(感谢BenVoigt的捕获:)):下面的代码仅适用于C#保证生成的类不会是beforefieldinit。但是使用C++/CLI应该不会那么容易:ManagedC++StaticConstructornotcalledin.net4所以正如我的评论中所

c# - DTO 的接口(interface)

我目前正在开始开发一个大型Web应用程序,主要包含一个AngularSPA和一个可以访问后端层的ODataWebAPI。我们还处于早期阶段,已经开始实现第一个类,包括位于公共(public)命名空间中的Model.dll,以便所有层都可以访问它。我们现在正在讨论模型中的那些DTO。有人说使用接口(interface)是绝对必要的,所以代码是这样的:namespaceMySolution.Common.Model{publicinterfaceIPerson{intId{get;set;}stringName{get;set;}...}}namespaceMySolution.Commo

c# - 为什么这个对象的类型通过反射显示没有接口(interface),尽管至少实现了两个?

首先,一个按预期工作的示例:(所有代码都在VS2008即时窗口中执行)25isIComparable>>true25.GetType().GetInterfaces()>>{System.Type[5]}>>[0]:{Name="IComparable"FullName=...>>[1]:{Name="IFormattable"FullName=...>>...到目前为止一切顺利。现在让我们尝试一个通过基类型继承接口(interface)的对象:classTestBase:IComparable{publicintCompareTo(objectobj){thrownewNotImpl