草庐IT

c# - 使用 Ninject 过滤构造函数注入(inject)

我正在尝试找到一种使用Ninject将构造函数依赖项注入(inject)过滤器的方法。我发现许多文章描述了现在不建议使用的属性注入(inject),但其余文章涉及工厂、定位器、全局包装器或stub属性的复杂设置。MVC允许您覆盖其操作的几乎任何部分,我原以为这只是一个简单的案例,以类似于您创建自己的依赖项解析器的方式创建您自己的过滤器提供程序。现在允许注入(inject)的正确方法是什么,或者如果您使用某些类型的过滤器而不是其他类型,它会变得更容易吗?publicclassUserValidationAttribute:ActionFilterAttribute{privateIRep

c# - c#中继承调用构造函数的顺序

这个问题在这里已经有了答案:C#constructorexecutionorder(7个答案)关闭4年前。我刚刚在阅读C#中的继承,其中我遇到了构造函数,并写到构造函数按派生顺序执行。这是什么意思?基类构造函数将首先被调用或派生类。

c# - 如何创建仅供特定类使用的构造函数。 (C# 中的 C++ Friend 等价物)

据我所知,在C#中,不支持C++中的“friend”关键字。有没有另一种方法可以设计一个类来实现相同的最终结果,而无需求助于不可用的“friend”关键字?对于那些还不知道的人,Friend关键字允许程序员指定类“X”的成员只能由类“Y”访问和使用。但是对于任何其他类,该成员都是私有(private)的,因此无法访问它们。“Y”类不必继承自“X”类。 最佳答案 不,在C#中无法做到这一点。一个常见的解决方法是将要隐藏其构造函数的对象基于接口(interface)。然后,您可以使用另一个对象来构造一个实现该接口(interface)的

c# - 有没有办法在 C# 中隐式构造类型?

我读到一个有用的技巧,它告诉您如何通过为您正在使用的每个域类型创建一个数据类型来避免在代码中使用错误的域数据。通过这样做,编译器将防止您意外混合类型。例如,定义这些:publicstructMeter{publicintValue;publicMeter(intvalue){this.Value=value;}}publicstructSecond{publicintValue;publicSecond(intvalue){this.Value=value;}}允许我不要混淆米和秒,因为它们是不同的数据类型。这很棒,我可以看到它的用处。我知道您仍然需要定义运算符重载来处理这些类型的任何

c# - T 必须是具有公共(public)无参数构造函数的非抽象类型,以便将其用作泛型类型或方法中的参数 'TModel'

我尝试在SO中搜索答案并偶然发现了类似的问题,但我无法使用它们来解决我的问题,因此请尽量不要将其标记为重复。让我们继续进行真正的交易:我有一个用于标准化EntityFramework数据库优先模型的通用库。这些是我创建的通用类:publicabstractclassGenericLookupModel:IActive,ICreated,IModified,IIdentity,IStringValue{publicboolis_active{get;set;}publicstringvalue{get;set;}publicstringdescription{get;set;}publi

c# - 将参数传递给基类构造函数

如果基类和派生类都有带参数的构造函数,那么我们在哪里将参数传递给基类构造函数? 最佳答案 像这样:publicclassDerivedClass:BaseClass{publicDerivedClass(intderivedParam,StringbaseParam):base(baseParam){}}此处的base关键字调用匹配提供的参数重载的基类构造函数。 关于c#-将参数传递给基类构造函数,我们在StackOverflow上找到一个类似的问题: htt

c# - 我可以在 C# 中组合构造函数吗

我有以下代码:publicAccountService(ModelStateDictionarymodelStateDictionary,stringdataSourceID){this._modelState=modelStateDictionary;this._accountRepository=StorageHelper.GetTable(dataSourceID);this._productRepository=StorageHelper.GetTable(dataSourceID);}publicAccountService(stringdataSourceID){this.

c# - 将对象的一个​​元素传递给 FluentValidation SetValidator 的构造函数

我正在使用FluentValidation来验证对象内部的集合,将集合项的元素与父对象的元素进行比较。目标输出是接收集合中每个失败项的ValidationFailures,而不仅仅是集合失败。我有一份软件订单,其中包含软件项目列表。如果订单是遗留系统,则所选软件只能是遗留软件,反之,非遗留系统只能有非遗留软件。我的模型:publicclassSoftwareOrder{publicboolIsLegacySystem;publicListSoftware;(...otherfields...)}publicclassSoftwareItem{publicboolSelected;pub

C#类构造函数默认值问题

我有以下类(class):publicclassTopic{publicstringTopic{get;set;}publicstringDescription{get;set;}publicintCount{get;set;}}我希望在使用以下内容创建类时将计数始终设置为零:varabc=newTopic{Topic="test1",Description="description1"}我对构造函数有点困惑。这是否可能,或者我是否需要在创建abc时指定主题、描述和计数? 最佳答案 int的默认值为0。所有值类型都有默认值,因为它们

c# - 抽象类构造器

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Whycan’tIcreateanabstractconstructoronanabstractC#class?抽象类的Constructor可以标记为'abstract'吗?