草庐IT

代码雨

全部标签

c# - 编写 Visual Studio 2010 插件,想在代码编辑器中显示一个像 Resharper 这样的工具箱

我想为VisualStudio2010编写一个插件,但实际上我遇到了一些问题。我想做的事情看起来很简单,我希望在代码编辑器中选择文本时出现一个小工具箱,例如在Resharper(带有有助于重构的菜单的小笔)或像这里一样:http://www.axtools.com/products-vs2010-extensions.php?tab=selection-popup我想知道:是否有有助于入门的VisualStudio模板?我尝试使用“编辑器视口(viewport)装饰”,但我不确定。我应该从工具箱开始设计还是可以显示系统工具箱中的一些按钮?在链接中的axtools插件中,它是定制工具箱还

c# - Visual Studio 2010 不允许我调试我的代码

所以,这个有趣的问题在过去的几个小时里一直困扰着我。VisualStudio2010Ultimate不再附加调试器并让我调试我的代码。如果我使用内置的开发服务器,那么一切正常。如果我切换到使用本地IISWeb服务器(http://localhost/),那么它所做的一切都会附加到w3wp.exe,但不会为任何内容加载DLL或PDB。我可以转到“调试”>“Windows”>“模块”,实际上该窗口中没有加载任何内容。相反,当使用内置开发服务器时,“模块”窗口会显示所有DLL并显示我的DLL的符号已加载。显然有些不对劲。VS安装完全是骨头。在IIS中,我的网站配置了ASP.NET2.0(因为

c# - 使用 T4 和 C# 在运行时编译动态代码

我在T4上阅读的使用TextTemplatingFilePreprocessor的文章展示了如何动态生成成为项目一部分并与项目一起编译的代码。是否可以使用T4生成在运行时编译、输出到dll、加载和执行的代码,并且所述代码可以访问与dll关联的常见可见性功能?如果是这样,请给我举个例子。我正在有效地尝试做与使用IL生成动态dll相同的事情,而不是使用C#。编辑我需要这个的具体情况很简单。我正在编写一个将消息路由到服务的消息路由器。服务可以是本地的或远程的。声明性脚本被编译成C#。动态部分是“这个服务是本地的还是远程的?”。输出C#相应更改。本地/远程的路由风格不同,因此具有动态特性。这是

c# - 使用 MSBuild 14 时禁用代码分析

我有一个包含多个C#6.0项目的.NET解决方案。每个项目都引用StyleCopAnalyzerviaNuGet.在VisualStudio中,我可以区分代码的构建和分析,但我看不到如何在命令行上使用MSBuildv14.0执行此操作(例如在CI服务器上)。我使用以下选项调用msbuildmySolution.sln/t:Rebuild,但没有一个有效:/p:RunCodeAnalysis=False/p:RunCodeAnalysisOnThisProject=False/p:RunCodeAnalysis=False,RunCodeAnalysisOnThisProject=Fal

c# - 代码优先自动生成代理类导航和集合属性为空

对于我所有的POCO,导航和集合属性都是空的。让我提供一些背景知识。我有一个使用EF4.3.1的复杂代码优先项目。代理生成已禁用。集合和导航属性是手动管理的。我现在启用代理创建和延迟加载。调试时,我可以看到我的实体(转换为我已知的POCO类型)现在实际上是一个自动生成的代理类。到目前为止,一切都很好。现在,当我查看我的导航属性时,它们为空。同样,我的集合属性为空。使用反射,我可以看到代理类已经覆盖了我的导航和集合属性。所有导航和集合属性都是虚拟的。例如:publicvirtualNavigationTypeNavigationName{get;set;}publicvirtualICo

C# OPC 应用程序相同的代码,但工作方式不同

我正在开发一个C#自定义OPC客户端,我开始在控制台应用程序中编写以提高速度,一切都按照我的意愿完美运行。然后我决定做一个windows窗体应用程序来获得视觉体验。Windows窗体应用程序只是简单地停止工作,大约一分钟后停止从OPC服务器读取数据。控制台应用程序不断读取和读取的位置。我在Debug模式下也找不到任何明显的东西。我绝对是在抓紧救命稻草,希望有人能给出一些启示。每个应用程序都使用OPCFoundation提供的.dll文件。这是控制台应用程序staticvoidMain(string[]args){Opc.URLurl=newOpc.URL("opcda://localh

c# - 由字段初始化引起的有害代码爆炸的真实示例是什么?

在CLRviaC#中,Richter指出在类声明中初始化字段,就像这样classC{intx=3;inty=4;publicC(){...}publicC(intz){...}...}导致在每个构造函数的开头插入语句,将字段设置为提供的值。因此,上面的intx=3;行将负责两个单独的初始化——一个在无参数构造函数中,另一个在采用int参数的构造函数中。里希特接着说:Thismeansthatyoushouldbeawareofcodeexplosion[...]Ifyouhaveseveralinitializedinstancefieldsandalotofoverloadedcon

c# - 将 IoC 容器引入遗留代码

我正在编写一个新的.NET库供我公司内部使用,它将通过依赖注入(inject)使用IoC。当然,如果我们使用IoC容器来解析实例,这个库将更容易使用。但是,将调用此库的代码目前不使用任何类型的依赖注入(inject),并且重构遗留代码以使用DI超出了我的项目范围。那么,在这个遗留代码中开始使用容器从我的新库中获取实例的最佳方法是什么?如果可能的话,我希望避免使用对我选择的任何IoC容器的硬引用来乱扔上述遗留代码。由于我是DI的新手,我们很可能会在某个时候改变我们想要使用哪个Container的想法。如果我用类似CommonServiceLocator的东西包裹我的容器CodePlex上

C# 并行与。线程代码性能

我一直在测试System.Threading.Parallel与Threading的性能,我很惊讶地发现Parallel比线程需要更长的时间来完成任务。我确定这是由于我对Parallel的了解有限,我才刚刚开始阅读它。我想我会分享一些片段,如果有人能向我指出并行代码比线程代码运行得更慢。还尝试运行相同的比较来查找素数,发现并行代码比线程代码完成得晚得多。publicclassThreadFactory{intworkersCount;privateListthreads=newList();publicThreadFactory(intthreadCount,intworkCount,

c# - 是什么功能导致这些代码提示出现在 VS2010 中?

此“功能”似乎随机出现在我的VisualStudio2010功能中。我有一个一年前的版本ReSharper,和VSCommands安装了精简版,但最近没有更改我的任何编辑器设置。我安装了Achievements最近加载项,但似乎不太可能启用此功能。这个是从哪里来的?我想向同事展示如何启用它,但无法弄清楚这个神奇的新功能现在出现在我的编辑器中的位置、方式或原因。该功能显示微弱的灰色语句,这些语句与语句的左大括号相呼应,该语句在屏幕外的可滚动窗口之外不再可见。例如: 最佳答案 事实证明,新功能是VSCommandsLite的一部分,它最