草庐IT

no-use-before-define

全部标签

c# - 简单注入(inject)器 : Register ILogger<T> by using ILoggerFactory. CreateLogger<T>()

我正在处理一个使用简单注入(inject)器作为依赖注入(inject)器的项目。另一方面,该项目使用Microsoft.Extensions.Logging来记录某些类中发生的事件。我的技术问题很容易解释。我想在我的DI中独立于正在调用的类T注册ILogger,但是我确实需要从我的ILoggerFactory.CreateLogger()中完成它方法,因为这会使用Microsoft.Extensions.Configuration获取记录器配置.我需要使用这样的东西来实例化我的记录器:privateMicrosoft.Extensions.Logging.ILoggerCreateL

c# - 如何调整 "is a type but is used like a variable"?

我正在尝试在网络服务中生成一些代码。但它返回了2个错误:1)List是一种类型,但像变量一样使用2)方法“Customer”没有重载接受“3个参数”[WebService(Namespace="http://tempuri.org/")][WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)][ToolboxItem(false)]publicclasswstest:System.Web.Services.WebService{[WebMethod]publicListGetList(){Listli=List();li.A

C# ASP.NET : how to access cache when no HttpContext. 当前是否可用(为空)?

期间Application_End()在Global.aspx中,HttpContext.Current为空。我仍然希望能够访问缓存-它在内存中,所以想看看我是否可以以某种方式引用它以将位保存到磁盘。问题-当HttpContext.Current为null时,有没有办法以某种方式引用内存中的缓存?也许我可以创建一个全局静态变量来存储指向缓存的指针,我可以根据HTTP请求更新它(伪:"static"=HttpRequest.Current)并通过Application_End()中的该指针检索对缓存的引用?有没有更好的方法在没有HttpRequest的情况下访问内存中的Cache?

c++-cli - C++/CLI-问题: Is there an equivalent to the C# "is" keyword or do I have to use reflection?

我在MSDN的某个地方读到过,与C#的“is”关键字等效的是dynamic_cast,但这并不完全等效:它不适用于值类型或泛型参数。例如在C#中我可以写:voidMyGenericFunction(){objectx=...if(xisT)...;}如果我尝试“等效的”C++/CLI:genericvoidMyGenericFunction(){objectx=...if(dynamic_cast(x))...;}我收到编译器错误“errorC2682:cannotuse'dynamic_cast'toconvertfrom'System::Object^'to'T'”。我唯一能想到的

c# - TypeLoadException 说 'no implementation' ,但它已实现

我的测试机器上有一个非常奇怪的错误。错误是:System.TypeLoadException:程序集“ActiveViewers(...)”中类型“DummyItem”中的方法“SetShort”没有实现。我只是不明白为什么。SetShort位于DummyItem类中,我什至重新编译了一个写入事件日志的版本,以确保这不是部署/版本控制问题。奇怪的是调用代码甚至没有调用SetShort方法。 最佳答案 注意-如果此答案对您没有帮助,请花时间向下滚动浏览此后人们添加的其他答案。简答如果您将方法添加到一个程序集中的接口(interface

c# - "using"构造和异常处理

“using”结构对于需要开始和分开的结束部分的情况看起来非常方便。快速举例说明:using(newTag("body")){Trace.WriteLine("hello!");}//...classTag:IDisposable{Stringname;publicTag(Stringname){this.name=name;Trace.WriteLine("");Trace.Indent();}publicvoidDispose(){Trace.Unindent();Trace.WriteLine("")}}开始部分定义为构造函数,结束部分为Dispose方法。然而,尽管这个结构很有

c# - .NET 反编译器区分 "using"和 "try...finally"

给定以下C#代码,其中Dispose方法以两种不同的方式调用:classDisposable:IDisposable{publicvoidDispose(){}}classProgram{staticvoidMain(string[]args){using(vardisposable1=newDisposable()){Console.WriteLine("using");}vardisposable2=newDisposable();try{Console.WriteLine("try");}finally{if(disposable2!=null)((IDisposable)dis

c# - 我怎样才能让 VS2010 insert using statements 按照 StyleCop 规则规定的顺序

相关的默认StyleCop规则是:将using语句放在namespace中。按字母顺序对using语句进行排序。但是...Systemusing排在第一位(仍在尝试弄清楚这是否意味着只是usingSystem;或using系统[.*];).所以,我的用例:我发现了一个错误并决定我至少需要添加一个可理解的断言,以减轻下一个人调试的痛苦。所以我开始输入Debug.Assert(并且intellisense将其标记为红色。我将鼠标悬停在Debug上以及usingSystem.Diagnostics;和System.Diagnostics.Debug我选择前者。这会在所有其他using语句之后

c# - Entity Framework : Alternate solution to using non primary unique keys in an association

我知道EntityFramework不允许您使用非主唯一键作为外键关联从数据库生成模型。我可以手动修改EDMX吗?如果是这样,有人可以给我一个例子或引用吗?如果不是,还有其他可能吗?最简单的例子:这是表的DDL。您会注意到我有一个从PersonType.TypeCode到Person.TypeCode的外键CREATETABLE[dbo].[PersonType]([PersonTypeId][int]NOTNULL,[TypeCode][varchar](10)NOTNULL,[TypeDesc][varchar](max)NULL,CONSTRAINT[PK_PersonType]

c# - 无法远程调试 .Net 应用程序 "no symbols have been loaded for this document."

我正在尝试调试.Net应用程序。我将它(和.pdb)复制到VM。我能够附加到进程,但我的断点在附加后被禁用:“当前不会命中断点,没有为该文档加载任何符号。”我确信虚拟机上的PDB是正确的。我尝试将主机上的PDB路径添加到visualstudio的符号路径。我错过了什么?(Win7x86、VisualStudio10、.Net4)谢谢 最佳答案 问题是PDB文件必须放在VM和主机上的同一文件夹中。 关于c#-无法远程调试.Net应用程序"nosymbolshavebeenloadedfor