小编Bev*_*van的帖子

如何使用反射来调用泛型方法?

当在编译时未知类型参数但是在运行时动态获取时,调用泛型方法的最佳方法是什么?

考虑以下示例代码 - 在Example()方法内部,GenericMethod<T>()使用Type存储在myType变量中调用的最简洁方法是什么?

public class Sample
{
    public void Example(string typeName)
    {
        Type myType = FindType(typeName);

        // What goes here to call GenericMethod<T>()?
        GenericMethod<myType>(); // This doesn't work

        // What changes to call StaticMethod<T>()?
        Sample.StaticMethod<myType>(); // This also doesn't work
    }

    public void GenericMethod<T>()
    {
        // ...
    }

    public static void StaticMethod<T>()
    {
        //...
    }
}
Run Code Online (Sandbox Code Playgroud)

c# generics reflection

1002
推荐指数
6
解决办法
24万
查看次数

为什么我的WiX安装程序需要一个空的CreateFolder来有条件地更新Xml文件?

TL; DR:为什么我需要在这个条件组件中使用 <CreateFolder/>元素才能使其工作?

我正在为一个内部应用程序组装一个简单的基于WiX的安装程序.此安装程序需要部署标准配置文件(普通.NET .config文件),然后使用msiexec在命令行上传递的属性对其进行自定义.

其中一个自定义是仅在已定义RUNTIME属性时才创建特定的应用程序设置.这是WiX组件:

  <Component Id="C.Rbnz.Fsis.CollectionPeriodService.exe.config.runtime"
             Guid="*">
    <Condition>
      <![CDATA[RUNTIME]]>
    </Condition>

    <CreateFolder/>

    <util:XmlFile Id="X.Runtime.1"
                  Action="createElement"
                  ElementPath="/configuration/appSettings"
                  File="[#F.Rbnz.Fsis.CollectionPeriodService.exe.config]"
                  Name="add"
                  Sequence="2"/>

    <util:XmlFile Id="X.Runtime.2"
                  File="[#F.Rbnz.Fsis.CollectionPeriodService.exe.config]"
                  ElementPath="/configuration/appSettings/add[\[]not(@key)[\]]"
                  Action="setValue"
                  Name="key"
                  Value="RunTime"
                  Sequence="3"/>

    <util:XmlFile Id="X.Runtime.3"
                  File="[#F.Rbnz.Fsis.CollectionPeriodService.exe.config]"
                  ElementPath="/configuration/appSettings/add[\[]@key='RunTime'[\]]"
                  Action="setValue"
                  Name="value"
                  Value="[RUNTIME]"
                  Sequence="4"/>

  </Component>
Run Code Online (Sandbox Code Playgroud)

这正如我想要的那样 - 如果在命令行上指定了RUNTIME,则会msiexec创建新元素; 如果没有,没有任何反应.

为什么我必须<CreateFolder/>在此组件中使用空?

当我试图让这个工作时,我找到了" Wix条件声明 ",它显示了一个工作组件,但没有解释为什么<CreateFolder/>是必要的.

删除<CreateFolder/>给我这个错误:

ICE18:组件的KeyPath:'C.Rbnz.Fsis.CollectionPeriodService.exe.config.runtime'是目录:'INSTALLDIR'.目录/组件对必须在CreateFolders表中列出.

一旦你知道这意味着什么,我相信,这是非常有用的.

windows-installer wix wix-extension msiexec

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

Subversion是否有可行的SCC集成?

对于支持Microsofts标准SCC API的Subversion客户端,您有什么建议?

到目前为止,我发现了两种可能性:

  • TortoiseSVN SCC.似乎既不成熟,也不活跃也不支持(自2005年1月以来没有发布)
  • 来自PushOK的SVN插件.商业,隐藏在登录页面后面的定价.

这些都不是特别引人注目 - 所以我想我会转向StackOverflow.

哪些Subversion客户端支持SCC API,适合与Sybase PowerBuilder一起使用?

开源首选,但考虑商业解决方案 - 质量/可靠性比成本(在合理范围内)更重要.

背景信息:Subversion服务器运行v1.6,其他工作已经使用TortoiseSVNAnkhSVN作为客户端.

更新:为什么不使用TortoiseSVN并完成它?

我的部分问题是Powerbuilder工作方式的特殊性 - 应用程序的所有部分都存储在PBL("pibble")文件中.在文件系统级别使用源代码控制,您只能签入/签出整个应用程序.如果你想逐件管理事物,你必须从PowerBuilder 内部通过基于SCC的集成来完成.

更新:那些PBL文件是什么?

对于那些感兴趣的人,还有一些细节.

PowerBuilder将其代码存储在PowerBuilder库(PBL)中,而不是单独的ASCII文本文件[this]为集成增加了一层复杂性.(http://pbdj.sys-con.com/node/42500)

svn version-control powerbuilder msscc

22
推荐指数
2
解决办法
9172
查看次数

Windows 8中的屏幕保护程序预览有何不同?

我正在开发一个简单的基于WPF的屏幕保护程序,无法使缩略图预览工作.

当您打开显示控制面板并转到配置屏幕保护程序时,所选的屏幕保护程序应在对话框中显示缩略图预览:

显示属性 - 屏幕保护程序

我在网上找到了很多关于如何做到这一点的好例子,包括:

按照这些示例,我无法正常工作 - 预览缩略图变为黑色,但没有其他内容出现.下载这些(以及其他一些)并运行它们具有相同的结果 - 空白预览缩略图.我之前在Windows 7上做过这个并不难,所以我有点沮丧.

将二进制文件复制到Windows XP计算机上,我发现每个二进制文件都成功显示了预览缩略图.

因此,Windows 7和Windows 8之间显然有些变化.

我需要做些什么来使我的WPF屏幕保护程序在Windows 8上正确显示缩略图预览?

wpf screensaver windows-8

20
推荐指数
1
解决办法
916
查看次数

IDataErrorInfo与ValidationRule vs Exception

任何人都可以告诉我哪种方法更适合WPF中的验证.

  1. 实现IDataErrorInfo
  2. 创建ValidationRule
  3. 抛出例外

在性能,内存泄漏,代码可维护性和重用方面.

wpf idataerrorinfo

19
推荐指数
3
解决办法
5432
查看次数

导致MsBuild"无法解决依赖性错误"的原因是什么?

我正在尝试为持续集成设置一些构建脚本,我发现了一些奇怪的东西.

我的解决方案从Visual Studio 2010编译得很好,但是当我使用MSBuild从命令行构建完全相同的东西时失败并出现错误.

这是我从命令行构建中得到的错误.

C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.WinFX.targets(269,9):
错误MC1000:未知的生成错误,
'无法解析对程序集的依赖性'Microsoft.Windows.Design.Extensibility,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'因为它尚未预加载.使用ReflectionOnly API时,必须通过ReflectionOnlyAssemblyResolve事件按需预加载或加载相关的程序集.
[C:\ Dev\Market Watch\src\Console\MarketWatch.Console\Rbnz.MarketWatch.Console.csproj]

我已经检查了所有源代码的参考资料Microsoft.Windows.Design.Extensibility,但根本没有找到任何参考资料.我还检查了我们从这个项目中引用的所有二进制文件,包括一些DevExpress库.

我的MSBuild命令行如下所示:

MsBuild.exe c:\Dev\MarketWatch\src\Capture\Capture.sln 
  /t:rebuild 
  /verbosity:quiet 
  /filelogger 
  /fileloggerparameters:LogFile=c:\Dev\MarketWatch\build\Logs\capture.msbuild.log
Run Code Online (Sandbox Code Playgroud)

我是否应该在MsBuild命令行中包含一些内容,以使命令行构建与Visual Studio运行的相同?

更新14/4

  • 尽管从Visual Studio命令提示符运行构建脚本,但我收到了这些错误.

msbuild continuous-integration visual-studio-2010

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

为什么dotTRACE Memory总是说"正在连接"?

我正在尝试使用JetBrains dotTRACE Memory分析IIS托管的WCF Web应用程序的内存使用情况.

在过去,我已经在同一个Web应用程序上成功使用了dotTRACE Performance,一切都运行良好,但我无法启动dotTRACE Memory.

当我尝试启动内存跟踪时,我得到的是:

在此输入图像描述

搜索JetBrains的(通常很好的)支持文档没有发现任何结果.

有任何想法吗?

服务器:Windows 2008 R2(64位)
IIS:7.0
dotTRACE内存:3.5.360(截至今日的最新版本)

我想要提供的应用程序位于通过Active Directory帐户登录的专用应用程序池中.

wcf iis-7 dottrace

14
推荐指数
1
解决办法
3185
查看次数

WPF用户控件中的"DataContext = this"有什么问题?

我在某处读到DataContext = this用户控件的构造函数中的设置是不好的做法(虽然无法找到).为什么这是不好的做法?有什么选择?

c# wpf datacontext

13
推荐指数
1
解决办法
3471
查看次数

如何从EF中的表中选择一些字段

我在数据库中有一个包含9列的表,如果需要,我希望能够只加载它的一些字段.

我如何使用Entity Framework 4做到这一点?

例如,我的表有以下字段:

ID, FirstName, LastName, FotherName, BirthDate, Mobile, Email
Run Code Online (Sandbox Code Playgroud)

我希望能够只获取这些列:

ID, FirstName, LastName
Run Code Online (Sandbox Code Playgroud)

我的项目是一个ASP.NET MVC 3应用程序,用SQLServer 2008 ExpressEF 4.1.

asp.net-mvc lambda entity-framework entity-framework-4.1 asp.net-mvc-3

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

如何阻止SSIS从"打电话回家"

在维护大量SQL Server Integration Services 2008 R2软件包时,我遇到了一个古怪的问题.

这些包经常使用脚本任务,每个脚本任务包含用于与某些内部Web服务集成的C#代码.

编辑其中一个脚本涉及以下步骤:

  • 在设计器中选择"脚本任务"
  • 右键单击,选择" 编辑"以打开"脚本任务编辑器"对话框
  • 按" 编辑脚本"按钮
  • 等待(刚刚结束)15秒
  • 编辑脚本
  • 关闭脚本编辑器
  • 按" 脚本任务编辑器"对话框上的" 确定"按钮
  • 等待(刚刚结束)30秒
  • 对话框消失了

这是等待,以粗体突出显示,让我感到沮丧.

在这些时间内没有CPU活动,没有磁盘IO,没有网络流量 - 编辑器似乎刚刚冻结.

顺便说一句 - 那些时间是可靠的 - 我在过去的几天里用秒表来测量它们,它们的变化小于我在击中秒表上的开始/停止按钮时的准确度.

我能找到的唯一线索是netstat在暂停期间显示额外的网络连接:

C:\>netstat -o -b

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  TCP    fsis-datam-dev2:3478   akamai-9.fx.net.nz:http  SYN_SENT        700
  [VSTA.exe]
Run Code Online (Sandbox Code Playgroud)

我目前的假设是延迟是某种超时,因为SSIS(或者可能是Visual Studio Tools for Applications编辑器)出于某种原因"打电话回家".有问题的机器没有互联网连接,因此请求是徒劳的.

ssis vsta

13
推荐指数
1
解决办法
3292
查看次数