草庐IT

clr-namespace

全部标签

c# - GC 行为和 CLR 线程劫持

我在CLRviaC#一书中阅读了有关GC的内容,特别是关于CLR何时开始收集的内容。我知道它必须在收集发生之前暂停线程,但它提到它必须在线程指令指针到达安全点时执行此操作。在它不在安全点的情况下,它会尝试快速到达一个安全点,它通过劫持线程(在线程堆栈中插入一个特殊的函数指针)来实现。这一切都很好,但我认为默认情况下托管线程是安全的?我最初认为它可能指的是非托管线程,但CLR允许非托管线程继续执行,因为任何正在使用的对象无论如何都应该被固定。那么,什么是托管线程中的安全点,GC如何确定那是什么?编辑:我认为我不够具体。根据thisMSDNarticle,即使调用了Thread.Suspe

c# - 调整 MVC 4 WebApi XmlSerializer 丢失 nameSpace

我正在开发MVCWebAPI,它使用EF和POCO类进行存储。我想要做的是从XML中删除命名空间,这样端点将返回并接受没有它的xml对象。(json工作正常)22testas@email.com...我希望它能工作22testas@email.com...希望不必用一堆属性来装饰POCO。我已经为此设置了一个测试解决方案,事实上,这些方法正在被攻击(一定是我系统中的其他问题)。无论如何-我使用这个解决方案的结果是这样的:22TestAccTest@Test.com摆脱了顶部的架构,但现在属性变得一团糟:(这是sampleproject的链接 最佳答案

c# - 是什么导致 Web 服务 URL 和 namespace 之间存在差异?

我有一个包含Web服务的ASP.NETWeb项目。当我运行该服务时,它会将我带到一个显示所有公开方法的页面,使用类似于http://api.example.com/game/service.asmx的URL。在Web服务的代码中,有具有以下属性的方法:[WebService(Namespace="http://webservices.example.com/GameServices/Game1")][WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]publicclassGame1:System.Web.Services

c# - 在 .NET 应用程序中删除不必要的 namespace 的方法?

有没有办法从类中删除不必要的“using”语句?例如,我可能有一个复杂的类,我可以在其中添加自己的命名空间,但也有一些命名空间是由VisualStudio自动添加的,我也可能正在使用它们:usingSystem;usingSystem.Collections.Generic;usingSystem.IO;usingSystem.Linq;usingSystem.Net;usingSystem.Windows.Navigation;usingSystem.IO.IsolatedStorage;usingMicrosoft.Phone.Shell;usingSystem.Net.Netwo

c# - SQL CLR 中的多线程缓存

是否有任何多线程缓存机制可以在SQLCLR函数中工作而不需要将程序集注册为“不安全”?同样描述了inthispost,简单地使用lock语句将在安全程序集上抛出异常:System.Security.HostProtectionException:AttemptedtoperformanoperationthatwasforbiddenbytheCLRhost.Theprotectedresources(onlyavailablewithfulltrust)were:AllThedemandedresourceswere:Synchronization,ExternalThreading

c# - 将 Enumerable.ToDictionary 与扩展方法一起使用时为 "CLR detected an Invalid Program"

一位同事向我传递了一个有趣的代码示例,该示例在运行时因InvalidProgramException(“CLR检测到无效程序”)而崩溃。这个问题似乎发生在JIT时间,因为它编译得很好,但就在调用带有“违规”行的方法之前抛出异常-我猜是因为它正在被JIT。有问题的行是调用Enumerable.ToDictionary并将Func作为第二个参数传递。如果Func参数完全用lambda指定,它就可以工作;如果指定为方法组,如果失败。这两者一定是等价的吧?这让我(以及发现它的同事!)感到难过-这看起来确实像是一个JIT错误。[编辑:抱歉-我在代码示例中以错误的方式得到了通过和失败的情况-现在已

c# - CLR 无法从 COM 上下文 0x3b2d70 转换到 COM 上下文

在调试应用程序时出现以下错误。TheCLRhasbeenunabletotransitionfromCOMcontext0x3b2d70toCOMcontext0x3b2ee0for60seconds.Thethreadthatownsthedestinationcontext/apartmentismostlikelyeitherdoinganonpumpingwaitorprocessingaverylongrunningoperationwithoutpumpingWindowsmessages.Thissituationgenerallyhasanegativeperforma

c# - .NET CLR VM 中的逃逸分析

CLR编译器/JIT是否执行任何逃逸分析?例如,在Java中,一个循环变量一个在循环中分配但没有逃脱循环的对象似乎分配在堆栈上而不是堆上(参见EscapeanalysisinJava)。为了澄清,在下面的示例中,编译器是否会优化foo的堆分配,因为它永远不会逃脱循环。classFoo{intnumber;Foo(intnumber){this.number=number;}publicoverridestringToString(){returnnumber.ToString();}}for(inti=0;i 最佳答案 如果您指的是

c# - 我可以命名以数字开头的 C# namespace 吗?

我使用的是Mac,现在无法亲自试用。例如,这会编译:namespace2something.something.else{} 最佳答案 不,你不能。命名空间名称是一个标识符,thegrammarforthefirstcharacterofidentifiers是:identifier_start_character:letter_character|'_';这意味着第一个字符必须是下划线或字母(包括非拉丁字母,如阿拉伯语或中文)。 关于c#-我可以命名以数字开头的C#namespace吗

c# - CLR 如何加载 DLL?

我的假设始终是CLR在应用程序域启动时加载了它需要的所有DLL。但是,我写了一个例子,让我质疑这个假设。我启动我的应用程序并检查加载了多少模块。Process[]ObjModulesList;ProcessModuleCollectionObjModulesOrig;//GetallmodulesinsidetheprocessObjModulesList=Process.GetProcessesByName("MyProcessName");//Populatethemodulecollection.ObjModulesOrig=ObjModulesList[0].Modules;C