草庐IT

INTERFACE

全部标签

c# - 将 set 访问器添加到类中的属性,该类派生自只有一个 get 访问器的抽象类

我有一个抽象类,AbsClass实现一个接口(interface),IClass.IClass有几个属性只有Get访问器。AbsClass实现的属性IClass作为要在派生自的类中定义的抽象属性AbsClass.所以所有派生自的类AbsClass还需要满足IClass通过与Get访问器具有相同的属性。但是,在某些情况下,我希望能够向来自的属性添加set访问器。IClass.然而,如果我尝试覆盖中的抽象属性AbsClass使用setaccessor我收到此错误ConcClassA.Bottom.Set无法覆盖,因为AbsClass.Bottom没有可覆盖的set访问器见ConcClass

c# - 通过 COM 包装器从托管代码调用 COM 可见托管组件

我有一个第3方组件,可以说FIPreviewHandler来处理预览,它实现了IPreviewHandler。FIPreviewHandler被实现为托管组件,并通过互操作的方式使用IPreviewHandler接口(interface)和相关接口(interface)。FIPreviewHandler是使用regasm.exe作为COM注册的。我有一个也是托管的客户端应用程序。我想在我的应用程序中创建一个FIPreviewHandler实例作为COM组件。我有一个定义IPreviewHandler和相关接口(interface)的互操作程序集。当我使用Activator.Create

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

c# - 具有 "has property X"约束的通用函数?

我有一个导出COM接口(interface)的第三方闭源应用程序,我通过Interop在我的C#.NET应用程序中使用它。此COM接口(interface)导出许多对象,这些对象都显示为System.Object,直到我将它们转换为适当的接口(interface)类型。我想为所有这些对象分配一个属性。因此:foreach(objectxinBigComInterface.Chickens){(xasChicken).attribute=value;}foreach(objectxinBigComInterface.Ducks){(xasDuck).attribute=value;}但是

c# - CaSTLe Windsor 组件注册上下文中的 "ForwardedTypes"是什么?

正如题主所说,真的!他们做什么? 最佳答案 转发类型允许您通过单个实现实现多个服务,举一个具体的例子,我们有两个接口(interface)用于处理某种树节点:publicinterfaceINodeAlterationProvider{...}publicinterfaceIChildNodeListProvider{...}各种组件都依赖于其中一个或两个接口(interface)。然而,在实现这些接口(interface)中的每一个时,您会发现它们有很多共享功能,并且希望将这些实现与其他一些功能合并到一个类中,例如:publicc

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(