我有一个这样的设置,带有一个具体的类,该类在要测试的方法中实例化.我想模拟这个具体的类,不要让它执行内部代码.因此,不应引发任何异常:public class Executor {public bool ExecuteAction(ActionRequest request){switch (request.ActionType){case ActionType.Foo:var a = new Foo();return a.Execute(request);case ActionType.Bar:var b = new Bar();return b.Execute(request);}return true;} }public class Foo {public vir...
我想创建一个类似工厂的东西,但这不是工厂模式的实现. 我有一个IServiceFactory接口:public interface IServiceFactory {TServiceInterface CreateService<TServiceInterface>(string url); }我想在实现中创建两个不同的服务,以实现两个不同的接口.认为我有:public class FirstService : IFirstService {} public class SecondService : ISecondService {}public class ServiceFactory : IServiceFactory {public IFirstService ...
我使用Pcap.Net进行流量监控,我需要它来接收数据包,直到用户请求取消为止.我以这种方式(简化)创建监视任务:var task1 = Task.Run(() => { communicator.ReceivePackets(0, PacketHandlerCallback); } /*, token*/);这里的0表示ReceivePackets的执行永无止境,PacketHandlerCallback是一种将针对每个接收到的数据包执行的方法. ReceivePackets是同步的,不支持取消.通常,在我的问题中,它可能是我们无法编辑的任何其他无限同步方法. 问...
在面对对象编程中,类的三大特性分别为封装,继承,多态。其中多态的具体实现,依赖于三个方法,也就是虚方法,抽象类和接口。多态的具体作用是什么呢?或者说多态的存在有什么意义呢?多态的存在有效的降低了程序的耦合度,在使用的时候,不仅可以表现大家都有的共性,还能在必要的时候突出一些特殊的的个性。那么如何用上文三个方法实现多态呢?今天先说下虚方法:首先,我们定义一个人类的基类。其中包含了这个人的姓名和国籍。...
最初,我为Serilog使用了一个日志文件,通过完成此操作var slc = new SerilogSubLoggerConfiguration(); configuration.GetSection("Serilog:SubLogger").Bind(slc);然后在Program.cs的Main方法中配置SubLoggerLog.Logger = new LoggerConfiguration().ReadFrom.Configuration(configuration).WriteTo.Logger(logger => logger.Filter.ByIncludingOnly(lvl => lvl.Level == slc.Level).WriteTo.RollingFile(slc..PathFormat)).Cre...
FakeItEasy很棒.非常感谢所有贡献者. 话虽如此,我遇到了一个用例,我想从配置了Invokes的lambda内部知道实际上调用了伪对象的什么方法,而不必为每个方法显式配置Invokes. 这是我的意思的简单示例:public interface ILogger {void Info(string msg);void Error(string msg); }var logger = A.Fake<ILogger>();A.CallTo(logger).Invokes(() => {Debug.WriteLine(CurrentMethodName); // CurrentMethodName should return "Error", or...
在实体框架中使用ASP.NET Web API DELETE方法传递学生ID,如果该ID存在于表中,则删除记录.当我尝试对其进行测试时,出现以下错误消息 “ System.Data.Entity.Utilities.Check.NotNull [T](T值,字符串parameterName)System.Data.Entity.DbContext.Entry [TEntity](TEntity实体)”public class StudentController : ApiController {[HttpDelete][Route("student/DeleteStudent/{id}")]public IHttpActionResult DeleteStudent(string i...
我正在构建一个.NET Core解决方案,该解决方案构建得很好,但是当我尝试发布它时,它崩溃并出现以下错误:Method 'ValidateOptions' in type 'Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions' from assembly 'Microsoft.CodeAnalysis.CSharp, Version=2.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' does not have an implementation.at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.Createat Microsoft...
我有2个类,一个用于通过缓存访问数据库和子类.我可以更改两个类的源代码,但是有许多结构不同的类,因此我正在寻找一种方法来生成通用解决方案,以帮助我仅拦截用Attribute标记的方法或其他方法. 这是一个例子public class BaseClass {[MyAttribute]public virtual MyEntity[] GetAll() {}[MyAttribute]public virtual MyEntity GetByKey(int key) {}[MyAttribute]public virtual void GetByName(string name) {} }public class Child...
我有家长班:public abstract class ParentClass {public ParentClass ParentMethod() { ... } }我还有两个孩子:public class ChildA : ParentClass {public ChildA ChildAMethod1(){... return this; }public ChildA ChildAMethod2(){... return this; } }public class ChildB : ParentClass {public ChildB ChildBMethod() { ... return this; } }在这种情况下,我可以这样写:new ChildA().ChildAMethod1().ChildAMethod2();但是...
我已经苦苦挣扎了一段时间,似乎无法解决这个问题. 我有一个控制器,说“老师”. 我想要一个具有不同名称的PUT操作,但是接受[FromBody]一个复杂的DTO. 如何调用?我尝试的一切都给了我404.[Produces("application/json")] [Route("api/Teacher")] public class TeacherController : Controller {private readonly ITeacherService _teacherService;public TeacherController(ITeacherService teacherService){this._teacherService =...
我有以下麻烦,在我的基本控制器中,我做了依赖注入.而且我有一个带有基本控制器实现的子类,我需要通过构造函数.所以我的疑问是,实现依赖注入的方法正确吗?如果没有,什么是最好的方法? 我使用unity来实现D.I,我的想法是VS2017 Web API 2. 遵循此代码,我使用:基本控制器或父控制器:public class BaseController : ApiController {public string[] includes = null;private readonly IFiltroServico servico;public BaseController...
我的ASP.NET核心应用程序中有一个简单的控制器.想法是该控制器称为CreditData,而我的端点可以是例如/ api / creditdata /,然后它应该具有默认的预期API方法. 我想要两种方法: > / api / creditdata,它应该有一个查询,例如/ api / creditdata?query = text1,text2> / api / creditdata / value,其中应使用/ api / creditdata / text1之类的查询 我尝试将其设置如下:[Route("api/[controller]")]public class CreditDataControlle...
我是一位从C#开始的新游戏开发人员. 现在我需要将我的游戏之一转移到打字稿上. 我试图用我在C#中非常熟悉的打字稿自定义列表.我的代码如下:export class List {private items: Array; constructor() {this.items = []; }get count(): number {return this.items.length; }add(value: T): void {this.items.push(value); }get(index: number): T {return this.items[index]; } contains(item: T): boolean{if(this.items.indexOf(i...
鉴于private object _x;private object LoadAndSet(ref object x) {// lock established over read and updatelock (somePrivateObjectNotUsedElsewhereThatIsIrrelvantToTheQuestion) {if (x == null)x = Load();return x;} }调用为public object Load() {return LoadAndSet(ref _x); }>锁的原子性/可见性保证是否涵盖“通过引用传递给字段(_x)的读取/写入”? 也就是说,第一个代码是否等效于以下代码,其中直接使用该字段? (分配...