草庐IT

版本控制gitlab

全部标签

c# - 调试和发布版本中的静态字段初始化

我发现静态字段初始化的行为可能不同。对于以下代码,publicclassClass1{publicstaticvoidMain(){Console.WriteLine("Main");Test();Console.ReadLine();}publicstaticvoidTest(){Console.WriteLine("Test");Singleton.Instance.DoSomething();}}publicclassSingleton{privatestaticSingletonsInstance=newSingleton();protectedSingleton(){Cons

c# - 错误 : Could not load file or assembly 'Microsoft. Practices.ServiceLocation,版本 = 1.0.0.0

我收到这个错误:Couldnotloadfileorassembly'Microsoft.Practices.ServiceLocation,Version=1.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35'oroneofitsdependencies.Thelocatedassembly'smanifestdefinitiondoesnotmatchtheassemblyreference.(ExceptionfromHRESULT:0x80131040)如果我的项目中已有另一个现有版本的Microsoft.Practic

c# - 使用 Task.Run() 写入控制台失败

我的一位同事发现我们的代码存在问题,花了一段时间才查明到底发生了什么,但这个简单的例子可以最好地证明这一点://FailsclassProgram{staticvoidMain(string[]args){Task.Run(()=>Console.WriteLine("HelloWorld"));Console.ReadKey();}}//WorksfineclassProgram{staticvoidMain(string[]args){Console.Write(String.Empty);Task.Run(()=>Console.WriteLine("HelloWorld"));

c# - 不同的 DLL,但在控制台应用程序和网站中应该相同

我有一个控制台应用程序和网站使用相同的System.Runtime.Serialization.Primitives.dll程序集。但是,当我运行该网站时,我的程序集是右边那个,但是如果我运行安慰应用程序,该网站的DLL变成了左边那个并导致错误。这两个项目都是v4.7,在我将所有项目升级到该框架后开始出现这种情况。两个项目都有这个 最佳答案 通过对相同DLL的不同引用来解决此问题的方法:第1步:在VisualStudio2015上创建一个新的网络应用第2步:检查问题是否仍然存在于这个新的网络应用程序项目中。如果答案是否并且问题不再存

c# - 控制台应用程序的 IOC?

谁能想到一个好的解决方案来将IOC放入控制台应用程序中?目前我们只是使用一个带有以下方法的静态类:publicstaticTResolve(){returndependencyResolver.Resolve();}我希望体验是无缝的,但想不出从控制台应用程序实现这一点的方法。 最佳答案 您必须在某处调用服务定位器(Resolve())。诀窍是让它尽可能远离。对于控制台应用程序,此引导发生在Main()中方法。在那里做,并尽量减少其他地方的Resolve调用,你会很棒。对于大多数依赖项,使用构造函数注入(inject)。

c# - 如何处理来自控制台应用程序的 COM 事件?

我正在使用来自第三方库的COM对象来生成周期性事件。当我从Winforms应用程序使用库时,将对象作为类成员并在主窗体线程中创建它,一切正常。但是,如果我从另一个线程创建对象,我不会收到任何事件。我的猜测是我需要在用于创建对象的同一个线程中有某种事件循环。我需要从控制台应用程序使用这个对象。我想我可以使用Application.DoEvents,但我不想在控制台应用程序中包含Winforms命名空间。我该如何解决这个问题?更新3(2011-06-15):商家终于回复了。简而言之,他们说Application.Run创建的消息泵与Thread.Join创建的消息泵之间存在一些差异,但他们

c# - 为什么不控制更新/刷新中间过程

我有一个带有statusLabel的Windows窗体(C#.NET),我似乎无法在事件处理程序方法的进程中间进行更新。我的代码看起来像这样......voidProcess_Completed(objectsender,EventArgse){stringt="Processisfinished!";this.Invoke(newStatusLabelUpdator(updateStatusLabel),newobject[]{t});}voidProcess_Started(objectsender,EventArgse){stringt="Processhasbegun";thi

c# - 控制台在类库 c# 中不可用

这个问题here似乎与我所经历的相反。我无法从新类库中访问控制台。我在顶部有usingSystem;。我在Windows8上使用visualstudio11。我怀疑这在更新中丢失了,所以这意味着我做错了什么。此外,一旦这一切正常,控制台是否可以在可移植类库中使用?编辑这里只是我做的一个测试文件usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceAdamLib.util.ConsoleSupport{classS

c# - 在 C# 中,为什么接口(interface)实现必须显式实现方法的另一个版本?

举个例子:publicinterfaceIFoo{IFooBar();}publicclassFoo:IFoo{publicFooBar(){//...}IFooIFoo.Bar(){returnBar();}//Whyisthisnecessary?}为什么IFooBar()的隐式实现是必要的,即使Foo无需转换就可以转换为IFoo? 最佳答案 在这种情况下需要它,因为C#不支持接口(interface)的返回类型协变,所以你的函数publicFooBar(){//...}不满足IFoo接口(interface),因为Bar方法的

c# - 使用媒体类型对 ASP.NET Web API 2 进行版本控制

我正在使用带有属性路由的ASP.NETWebAPI2,但我似乎无法使用媒体类型application/vnd.company[.version].param[+json]进行版本控制去工作。我收到以下错误:Thegivenkeywasnotpresentinthedictionary.源于在FindActionMatchRequiredRouteAndQueryParameters()方法中测试关键的_actionParameterNames[descriptor]。foreach(varcandidateincandidatesFound){HttpActionDescriptord