草庐IT

外参数

全部标签

c# - 为什么我不能对两个泛型类型参数使用协变?

考虑以下示例:classBase{}classDerived:Base{}classTest1{privateListm_X;publicIEnumerableGetEnumerable(){returnm_X;}}这编译得很好,因为IEnumerable在T中协变.但是,如果我做完全相同的事情,但现在使用泛型:classTest2whereTDerived:TBase{privateListm_X;publicIEnumerableGetEnumerable(){returnm_X;}}编译错误Cannotconvertexpressiontype'System.Collection

c# - Ninject:将构造函数参数绑定(bind)到其他对象的属性

我有一个IConfig包含整个应用程序中使用的设置的对象。目前,我将整个对象注入(inject)到每个需要它的对象的构造函数中,如下所示:publicinterfaceIConfig{stringUsername{get;}stringPassword{get;}//...othersettings}publicclassFoo:IFoo{privatereadonlystringusername;privatereadonlystringpassword;publicFoo(IConfigconfig){this.username=config.Username;this.passw

c# - 无参数构造函数的第一个参数是什么?

我有这样一个简单的程序:publicclassFoo{publicFoo(){}publicintMyInt{get;set;}=10;publicListMyList{get;set;}=newList();}publicclassProgram{staticpublicvoidMain(){Console.WriteLine(newFoo().MyInt);Console.ReadLine();}}我决定查看此类程序的CIL代码(我对Foo的构造函数感兴趣)。这是它:.methodpublichidebysigspecialnamertspecialnameinstancevoid

c# - 以编程方式向方法或参数添加属性

我可以使用TypeDescriptor.AddAttributes在运行时向类型添加属性。我如何对方法和参数做同样的事情?(也许是2个不同的问题...) 最佳答案 TypeDescriptor.AddAttributes仅影响非常的特定用例;即来自System.ComponentModel。对于反射的其余,它对额外属性一无所知。事实上,System.ComponentModel并不真正适用于方法或参数。简而言之;你不能。您需要将此信息存储在其他地方(定制),或在编译时添加。 关于c#-以

c# - 有没有办法将 lambda 表达式作为变量或参数传递?

我需要将lambda查询作为参数传递,下面的代码是示例,我很想为它找到一个实现,有示例:像这样的东西:varexpr1=Where(n=>n>6).OrderBy(n=>n%2==0).Select(n=>n);varexpr2=TakeWhile((n,index)=>n>=index));然后像这样使用它:publicvoidUseLambda(IEnumerablesource,lambdaExpr){varitems=Expr.Compile(source);foreach(variteminitems)Console.Writeline(item.ToString());}p

C#:转换数组以在带有附加参数的参数中使用

我有一个接受参数的方法。在方法内部,应将另一个变量添加到输出中:privatevoidParamsTest(paramsobject[]objs){varfoo="hello";//Invalid:Interpretesobjsassinglearrayparameter:Console.WriteLine("{0},{1},{2}",foo,objs);}当我打电话ParamsTest("Hi","Ho");我想看看输出。helloHiHo我需要做什么?我可以将foo和objs复制到一个新数组中,并将该数组传递给WriteLine但是有没有更优雅的方法来强制objs再次充当参数?那种

c# - 如何将参数传递给 DbMigration.Sql() 方法

使用EntityFramework迁移时,DbMigration基类hasaSqlmethodwhichtakesparametersinananonymousobject我一辈子都弄不明白如何使用它。Sql(@"UPDATEdbo.SlideSetsSETName=@Name,",false,new{Name="Foo"});错误的结果System.Data.SqlClient.SqlException(0x80131904):Mustdeclarethescalarvariable"@Name"这条语句的正确语法是什么? 最佳答案

c# - ASP.NET Core 中间件向 Controller 传递参数

我正在使用ASP.NETCoreWebAPI,其中我有多个独立的WebAPI项目。在执行Controller的任何操作之前,我必须检查登录用户是否已经在模拟其他用户(我可以从DB获得)并且可以传递模拟用户Id到actions。由于这是一段可以重用的代码,我想我可以使用一个中间件:我可以从请求header获取初始用户登录信息获取模拟的用户ID(如果有)将该ID注入(inject)请求管道中,使其可供被调用的api使用publicclassGetImpersonatorMiddleware{privatereadonlyRequestDelegate_next;privateIImpers

c# - ODBC 参数占位符可以命名吗?

我进行了一些搜索,但没有找到我的问题的明确答案。有没有办法定义SQL查询中的哪个?属于哪个参数?例如,我需要执行如下操作:SELECT*FROMmyTableWHEREmyField=@Param1ORmyField2=@Param1ORmyField1=@Param2ORmyField2=@Param2ODBC中的相同查询是:SELECT*FROMmyTableWHEREmyField=?ormyField2=?ormyField1=?ormyField2=?除了为每个值加载两次参数之外,有没有办法告诉ODBC命令哪个参数是哪个?我怀疑没有,但可以使用更有经验的ODBC程序员的观点。

c# - 您可以在同一个 Web API Controller 中使用 2 个具有不同参数类型的 GET 方法吗?

这个问题在这里已经有了答案:CanIhaveMultipleGetMethodsinASP.NetWebAPIcontroller(2个答案)关闭7年前。我有一个带有2个GET方法的asp.netwebapiController。一个接受字符串参数,另一个接受int参数。我只有使用webapi设置的默认路由。publicHttpResponseMessageGetSearchResults(stringsearchTerm){HttpResponseMessageresponse;//DoWorkreturnresponse;}publicHttpResponseMessageGet(