小编bit*_*onk的帖子

MEF是依赖注入框架吗?

最近宣布的.NET 4.0托管可扩展性框架(MEF)是一个依赖注入框架吗?模式和实践中的Microsoft Unity在4.0中是否会过时?MEF与Unity这样的框架相比如何?

.net mef unity-container

32
推荐指数
1
解决办法
2万
查看次数

ReSharper在成员"EntityID"中抱怨大写"ID"

我在一个类中有一个属性"EntityID".Resharper(5.1)说

名称"EntityID"与规则"方法,属性和事件"不匹配.建议的名称是'EntityId'.

但恕我直言,根据类库开发人员设计指南中的命名惯例.'EntityID'应该非常好:

  • 不要使用计算领域通常不接受的首字母缩略词.
  • 在适当的地方,使用众所周知的首字母缩略词来替换冗长的短语名称.例如,使用UI作为用户界面,使用OLAP进行在线分析处理.
  • 使用首字母缩略词时,请使用Pascal case或camel case作为长度超过两个字符的首字母缩略词.例如,使用HtmlButton或htmlButton.但是,您应该将仅包含两个字符的首字母缩写词大写,例如System.IO而不是System.Io.
  • 不要在标识符或参数名称中使用缩写.如果必须使用缩写,请将camel case用于包含两个以上字符的缩写,即使这与单词的标准缩写相矛盾

*更新:*指南的最新版本还说:

除了骆驼标识符的第一个单词之外,请将两个字符的首字母缩写大写. 名为DBRate的属性是用作Pascal标识符的第一个单词的简短缩写(DB)的示例.名为ioChannel的参数是用作驼峰标识符的第一个单词的简短首字母缩写词(IO)的示例.

我是否正确理解指南?如果是这样,我怎么能让ReSharper接受"EntityID"(众所周知的两个字母的缩写),但拒绝"HTMLReader"(它应该是HtmlReader).

c# resharper naming-conventions framework-design

24
推荐指数
4
解决办法
9579
查看次数

使用NCrunch和Resharper

在日常使用中,NCrunch与ReSharper的合作程度如何?它们可以并排运行而没有任何(可用的)故障吗?表现还行吗?有什么值得注意的吗?ReSharper测试人员是否还能工作?

resharper ncrunch

23
推荐指数
2
解决办法
3645
查看次数

TreeNode选择BackColor,而TreeView没有聚焦

在TreeView没有焦点的情况下,有一种简单的方法可以让选定的TreeNode保留其SystemColors.Highlight BackColor吗?因为即使将HideSelection设置为false,也几乎无法看到所选的BackColor.

TreeView具有焦点时选择的TreeNode:

重点

TreeView没有焦点时选择的TreeNode:

没有重点

提前致谢.

编辑:我知道我可以将DrawMode设置为OwnerDrawAll然后添加自定义DrawNode事件.我之前尝试过这个问题,我遇到的问题是我不知道如何正确地绘制TreeNode的相应ImageKey.

c# treeview custom-draw winforms

23
推荐指数
3
解决办法
3万
查看次数

AppDomain.CurrentDomain.SetupInformation.PrivateBinPath为null

当我启动只有一个AppDomain的应用程序时,AppDomain.CurrentDomain.SetupInformation.PrivateBinPath为null.即使我在MyApp.exe.config中设置了探测路径,如下所示.

我会想到AppDomain.CurrentDomain.SetupInformation.PrivateBinPath包含字符串"Dir1;Dir2;Dir3".

如何访问MyApp.exe.config中配置的探测路径?

<?xml version="1.0" encoding="utf-8"?>

<configuration>
  <appSettings>
    <add key="Foo" value="Bar" />
  </appSettings>
  <startup>
    <!-- supportedRuntime version="v1.1.4322" / -->
  </startup>

  <runtime>
    <gcConcurrent enabled="true" />
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <publisherPolicy apply="yes" />

      <!-- Please add your subdirectories to the probing path! -->
      <probing privatePath="Dir1;Dir2;Dir3" />
    </assemblyBinding>
  </runtime>
  <system.windows.forms jitDebugging="true" />
</configuration>
Run Code Online (Sandbox Code Playgroud)

更新

正如Hans Passant指出下面评论,SetupInformation.PrivateBinPath没有为主appdomain设置.所以上面的方法不起作用.您有什么建议来模拟融合在探测路径中搜索程序集的方式,或者至少考虑<probing privatePath="" />当前应用程序配置?我能想到的最好的事情是<probing privatePath="" />当前域是主appdomain(AppDomain.CurrentDomain.IsDefaultAppDomain()true)时手动从App.config 读取.有没有更好的办法? …

.net c#

21
推荐指数
2
解决办法
2935
查看次数

使用VS Code在ASP.NET Core MVC中调试javascript和c#

有没有办法在VS Code(在macOS上)同时设置断点并调试javascript和c#?

我已经安装了chrome调试器扩展,然后使用创建了一个新的MVC应用程序dotnet new mvc.

但是,当我启动应用程序断点时,只会在C#文件中命中,它们会在js文件(site.js)中保持灰色,因为没有加载任何符号.

这些是我的启动设置(我唯一修改的是osx command因为chrome不是我在macOS上的默认浏览器):

"version": "0.2.0",
   "configurations": [
        {
            "name": ".NET Core Launch (web)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            // If you have changed target frameworks, make sure to update the program path.
            "program": "${workspaceRoot}/bin/Debug/netcoreapp1.1/Foo.PhotoSite.dll",
            "args": [],
            "cwd": "${workspaceRoot}",
            "stopAtEntry": false,
            "internalConsoleOptions": "openOnSessionStart",
            "launchBrowser": {
                "enabled": true,
                "args": "${auto-detect-url}",
                "windows": {
                    "command": "cmd.exe",
                    "args": "/C start ${auto-detect-url}"
                },
                "osx": {
                    "command": "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
                },
                "linux": {
                    "command": "xdg-open" …
Run Code Online (Sandbox Code Playgroud)

javascript c# debugging visual-studio-code

21
推荐指数
1
解决办法
1121
查看次数

使用LINQ在列表中查找特定类型的第一个元素

使用LINQ和C#在元素列表中找到特定类型的第一个项目的最短符号是什么.

c# linq

18
推荐指数
4
解决办法
1万
查看次数

找到Visual Studio 2017的devenv.exe位置的可靠方法

我需要运行使用devenv.exe(或devenv.com就此而言)构建可视化工作室解决方案的脚本.对于visual studio 2015 %VS140COMNTOOLS%,我可以使用一个环境变量 来查找devenv的安装位置.由于Visual Studio 2017 没有%VS150COMNTOOLS%,因此devenv在脚本(bat或powershell)中查找安装位置的可靠方法是什么.

devenv visual-studio-2017

17
推荐指数
2
解决办法
2万
查看次数

WPF数据绑定是否会更改UI线程?

我刚刚注意到,当我ViewModel从后台工作线程更改我的(MVVM)中的绑定属性时,我没有得到任何异常,并且视图已正确更新.这是否意味着我可以安全地依赖于wpf数据绑定编组ViewModelUI线程中的所有更改?我想我已经读过一个应该确保(在ViewModel)INotifyPropertyChanged.PropertyChanged线程上触发的内容.这有什么改变在3.5或什么?

data-binding wpf multithreading mvvm

16
推荐指数
1
解决办法
5752
查看次数

使DataTemplate可混合

如何为ViewModel可混合(可在表达式混合中设计)创建Datatemplate.当我转到资源并尝试直接编辑DataTemplate时,我在Drawingborad上看到的是一个空白矩形.这是因为DataTemplate没有绑定任何东西.当然我可以创建一个UserControl并在那里的代码中创建一些设计时数据来查看模板,但我现在必须在资源(编辑)和用户控件(查看我的编辑结果)之间来回切换.是不是有更直接的方式来编辑和查看我的DataTemplate?

wpf datatemplate expression-blend

16
推荐指数
1
解决办法
3693
查看次数