【c# – 左侧接口】教程文章相关的互联网学习教程文章

从C#方法返回F#接口【代码】

我正在重新编写从F#到C#的一些东西,并遇到了一个问题. 在F#示例中我有这样的事情:let foo (x:'T) =// stuff{ new TestUtil.ITest<'T[], 'T[]> withmember this.Name input iters = "asdfs"member this.Run input iters = run input itersinterface IDisposable with member this.Dispose() = () }现在在我的C#版本中我有..public class Derp {// stuffpublic TestUtil.ITest<T, T> Foo<T>(T x){// ???// TestUtil.ITest is from a...

c# – Visual Studio Extension获取所有类和接口元数据【代码】

我已成功创建Visual Studio扩展项目.它工作得很好,整洁.我为解决方案做了一些活动. MSDN和Internet中的手册很简短.我找不到我的问题的答案:如何在安装此扩展包的解决方案中检索与类和接口(名称空间,类名,基类型等)相关的所有元数据?解决方法:您可以使用ITypeDiscoveryService列出项目中的所有可用类型. 为此,您应该将Microsoft.VisualStudio.Shell.Design引用添加到项目中.这样,您可以使用DynamicTypeService获取ITypeDiscoveryS...

c# – 使用IoC动态选择接口实现【代码】

我有一种情况,在运行时确定接口的实现.例如,我检查一个字符串,然后确定要使用哪个子类,没有IoC,它看起来如下所示:if (fruitStr == "Apple") {new AppleImpl().SomeMethod(); } else {new BananaImpl().SomeMethod(); }据IFruit称,AppleImpl和BananaImpl这两个类都是同一个界面的实现. 如何使用IoC / Dependency Injection来完成,特别是在Castle Windsor?解决方法:这是关于依赖注入的最常见问题,并在StackOverflow上反复询问. 简而...

c#与方法接口,但实现为concreate【代码】

我创建了一个这样的接口:public interface ICacheable {void CloneTo<T>(T entity) where T : class, new(); }但是,当我在类中实现接口时,我必须使用T作为类型定义CloneTo方法,如下所示:public class MyEntity : ICacheable {public void CloneTo<T>(T genericEntity) where T : class, new() {} }这会编译并运行.但是,它并不理想,因为我可以将任何其他实现ICacheable的项目传递给我只希望能够发送该类实例的方法.我真正想要的是...

c# – 单元测试中模拟是否需要接口?【代码】

我已经读过你需要定义接口以模拟类型,但我不知道如何解释它.例如,要模拟FileSystem,我可以将对象传递给方法,然后在从我的测试调用时模拟它,而不是直接调用某些I / O方法.为什么单元测试示例(如下面的SO问题),使用接口?void DoIt(IZipper zipper, IFileSystem fileSystem, IDllRunner runner) {string path = zipper.Unzip(theZipFile);IFakeFile file = fileSystem.Open(path);runner.Run(file); }难道我不能简单地使用相应类型的...

c# – 为什么在实现接口后才重写方法?【代码】

我一直在阅读“有效使用遗留代码”这本书,我一直在讨论通过创建假冒在单元测试中覆盖难以测试的方法的概念.我把一个我认为会起作用的例子放在一起,最终表现得和我想象的不同.我想我刚刚发现了一个关于继承和方法重载如何在C#中工作的漏洞,我想知道是否有人可以帮助我理解这里发生了什么. 我有以下界面:public interface IAnimal {void MakeSound();void Move(); }然后我创建动物界面的实现,如下所示:public class Dog : IAnimal ...

c# – 带有UnityContainer中接口的RegisterType【代码】

我正在使用UnityContainer,我想注册一个不是类型的接口,而是使用另一个接口.不幸的是,我无法干净利落地做到这一点. 我有几个通用的接口,它们在一个接口中统一,我需要在容器中注册它们.代码如下:interface IDeviceImporter {void ImportFromDevice(); }interface IFileImporter {void ImportFromFile(); }interface IImporter : IDeviceImporter, IFileImporter { }class Importer1: IImporter { } class Importer2: IImporter { }...

c# – 无法将静态方法指定为接口的一部分?【代码】

我有一组对象,我想要符合一个接口,比如ISpecialObject.然而,我的实现的一部分我想在每个ISpecialObject的实现中封装这些specialobjects的实例化触发器. 所以说例如我有实现ISpecialObject的类类型列表,然后我想通过每个类并调用一个像CanCreate(一些数据)的静态方法,告诉我是否要创建其中一个的实例. 但是,.net似乎不允许我将此静态CanCreate指定为ISpecialObject接口的一部分. 任何人都可以提出一种方法来解决这个问题,或者更好地...

C# Web Service 接口接受数据【图】

C# 2017 1.新建项目选择2.选择空 点击确定3.新建amsx文件 点击确定 在amsx文件中编写 接收XML数据using System.Web.Services; using System.Xml;namespace TBEAWebService {/// <summary>/// TBEA 的摘要说明/// </summary>[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)][System.ComponentModel.ToolboxItem(false)]// 若要允许使用 ASP.NET AJAX 从脚本中调用...

c# – 无法将代码放入接口的解决方法【代码】

假设我有一个许多不同类实现的接口:public interface IHaveObjects {object firstObject(); }(注意:我不能使它成为一个抽象基类,因为IHaveObjects的实现者可能已经有了一个基类.) 现在我想在接口中添加一个新方法,这样接口的一个实现者就可以有特殊的行为.理想情况下我会做这样的事情:public interface IHaveObjects {object firstObject();object firstObjectOrFallback(){return firstObject();} }然后转到接口的那个实现者并...

深入理解C#中的IDisposable接口(转)【代码】【图】

转自:https://www.cnblogs.com/wyt007/p/9304564.html 写在前面 在开始之前,我们需要明确什么是C#(或者说.NET)中的资源,打码的时候我们经常说释放资源,那么到底什么是资源,简单来讲,C#中的每一种类型都是一种资源,而资源又分为托管资源和非托管资源,那这又是什么?! 托管资源:由CLR管理分配和释放的资源,也就是我们直接new出来的对象; 非托管资源:不受CLR控制的资源,也就是不属于.NET本身的功能,往往是通过调用跨平...

为什么C#Type.GetProperty()对于接口的行为与对基类的行为不同?【代码】

如果类型是接口,为什么Type.GetProperty(string)不从基接口获取属性?例如,以下代码打印:System.String X null System.String X System.String X这似乎不一致:void Main() {Console.WriteLine(typeof(I1).GetProperty("X"));Console.WriteLine(typeof(I2).GetProperty("X"));Console.WriteLine(typeof(C1).GetProperty("X"));Console.WriteLine(typeof(C2).GetProperty("X"));; }public interface I1 { string X { get; } }publi...

c# – 非虚拟成员的无效设置 – 在接口上?【代码】

使用Moq进行单元测试时,出现以下错误:Message: System.NotSupportedException : Invalid setup on non-virtual (overridable in VB) member: cm => cm.AppSettings[It.IsAny<string>()]根据这些发现,我理解最好使用Moq的抽象类或接口. > Why does the property I want to mock need to be virtual?> Moq is throwing Invalid setup on a non-overridable member, when class is in Service Project> Invalid setup on a non-virtu...

c# – 使用另一个接口从接口实现泛型方法【代码】

我正在尝试创建一个通用接口,它允许我使用与数据库交互的方法.我希望我的业务应用程序能够实例化任何连接方法,并确保接口是相同的. 这是我现在正在尝试的简化版本. 数据库接口,其中IElement是另一个定义表的接口.public interface IDatabase {void setItem( IElement task ); //this works fineList<T> listTasks<T>() where T : IElement; // this doesn't }IElement界面:public interface IElement {int id { get; set; } }IEl...

c# – 对通用接口的抽象引用【代码】

如果运行时允许引用通用接口的成员并非特定于泛型类型,那么是否有人认为它可能有用?我知道通常的“解决方法”是创建一个非泛型接口作为通用接口的基础,但有一个有效的理由反对该基本接口基本上是自动的吗? 例如,给定以下接口:public interface IProcessor<T> {string Name { get; }void Process(T item); }我认为自动允许这样的事情会很方便:public void LogProcessor(IProcessor<> item) {Trace.WriteLine(item.Name); }我很...