Tag: c ++

使用NUnit尽早初始化log4Net

我想知道在NUnit项目中初始化log4Net的最佳方法是什么。 当然我想尽快调用init代码(即XmlConfigurator.Configure() )来获取尽可能多的早期日志输出。 但由于我的项目是通过NUnit运行的,因此我对其入口点几乎无法控制。 根据NUnit文档,它应首先调用一些构造函数,然后在标有[TestFixtureSetup]的类中使用[TestFixtureSetup] [SetUp]属性标记的方法。 所以,首先,我创建了一个静态助手类,我可以多次调用它而不会出现问题。 public static class LoggingFacility { private static bool _loggerIsUp = false; public static void InitLogger() { if (_loggerIsUp == false) XmlConfigurator.ConfigureAndWatch(f); _loggerIsUp = true; } } 然后,我使所有[TestFixtureSetup]inheritance了一个除了调用LoggingFacility.initLogger()之外几乎没有的东西。 但是,这仍然会使所有早期运行的构造函数按照我只能随机假设的顺序运行。 而且,在我甚至无法执行某些代码之前,它可能会进行一些静态初始化。 事实上,正如我在日志中看到的那样,执行的前4秒左右完全没有记录。 这是否意味着我必须在每个构造函数中调用我的InitLogger()并禁止使用任何静态初始化程序? 那是艰苦的工作! 有人知道这个魔术吗?

DataGridView:编辑时更改编辑控件大小

在DataGridView中我希望在编辑单元格时根据字符串长度扩展单元格大小。 Excel也是如此。 在DataGridView中 ,进入编辑模式时, DataGridViewTextBoxEditingControl将放置在单元格位置。 我试图改变这个控件的边界/大小,但结果只是我所需大小的短暂闪烁。 它直接覆盖了原始的截断方式。 关于如何使这个工作的任何想法? 谢谢, 蒂莫

Windows 8应用程序 – MediaElement不播放“.wmv”文件

我的Win8应用程序中存在MediaElement的问题 – 当我尝试从本地库中播放一些“.wmv”文件时,它经常(并非总是)抛出MediaFailed并且我收到错误 MF_MEDIA_ENGINE_ERR_SRC_NOT_SUPPORTED:HRESULT – 0xC00D36C4 意思是 video编解码器或音频编解码器不受支持,或video文件中的一个流已损坏。 可能不支持此内容。 问题不是文件已损坏(我可以使用Windows Media Player播放它们)。 这是我用来设置MediaElement的代码: private async void Button_Click(object sender, RoutedEventArgs e) { var picker = new FileOpenPicker(); picker.FileTypeFilter.Add(“.wmv”); picker.FileTypeFilter.Add(“.mp4”); picker.SuggestedStartLocation = PickerLocationId.VideosLibrary; StorageFile file = await picker.PickSingleFileAsync(); if (file != null) { using (IRandomAccessStream ras = await file.OpenAsync(FileAccessMode.Read)) { me.SetSource(ras, file.ContentType); } } } 有人知道这里有什么问题吗? 提前致谢。

在c#中编组c结构

我有一个’C”DLL’可以将结构作为输入,我必须从我的c#程序中调用该DLL 以下是我在c中的示例结构,我必须在我的c#代码中编组这些结构 我在做对还是错? 实际C结构: typedef struct procedure { char code[8]; }procedure; typedef struct datefield { char date[10]; }datefield; typedef struct p45_clsgs { procedure p45_clsg; datefield p45_clsgdte; }p45_clsgs; C#: [StructLayout(LayoutKind.Sequential), Serializable] struct procedure { //char code[]; [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 8)] public string code; } [StructLayout(LayoutKind.Sequential), Serializable] struct datefield { //char date[10]; [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 10)] public […]

DotNet.Highcharts:未按正确日期绘制成本

我正在创建一个使用两个表中的数据的DotNet.Highcharts图表:支出和收入。 我正在使用SQL语句为每个语句创建一个DataTable 。 第一个(用于Incomings)称为Dt包含IncCost和IncDate 。 名为Dt2的第二个(支出)包含ExpCost和ExpCost 。 我可以针对IncDate绘制针对IncDate和ExpCost 。 当我尝试连接IncDate和IncDate (最终)时出现问题,因为IncCost和ExpCost的成本是针对(最终)中日期的位置绘制的,而不是与其相关的实际日期。 以下是我用来创建每个DataTable的调用: SqlDataAdapter Adp = new SqlDataAdapter(“select CONVERT(DATETIME, IncDate, 103) AS IncDate, SUM(IncCost) AS IncCost from Incomings GROUP BY CONVERT(DATETIME, IncDate, 103) ORDER BY CONVERT(DATETIME, IncDate, 103)”, con); SqlDataAdapter Adp2 = new SqlDataAdapter(“select CONVERT(DATETIME, ExpDate, 103) AS ExpDate, SUM(ExpCost) AS ExpCost from Expenditures GROUP BY […]

无声安装

我正在使用C#编写一个InstallerClass作为我的安装程序的自定义操作,我可以使用InstallerClass成功运行外部exe(安装),但是当我尝试在InstallerClass使用/quiet时,它不会安装exe。 但是我可以在命令提示符下使用/quiet以静默方式成功安装它。 是否有任何原因或者如何使用C#以静默模式安装? 以下是我在Commit方法中使用的代码(overriden): Process p = new Process(); p.StartInfo.UseShellExecute = false; p.StartInfo.FileName = pathExternalInstaller; p.StartInfo.Arguments = “/quiet”; p.Start();

如何使用证书签署ActiveX DLL

我创建了一个DLL,我通过COM公开,我需要用证书签名。 我创建了一个Visual Studio 2008项目,它有一个包含ActiveX对象代码的类库。 然后我创建了一个使用它的ASP.net页面: var x = new ActiveXObject(“Foo.Bar”); x.SomeMethod(); 我运行该网站,并获得了一堆安全性错误。 我运行regasm / tlb / codebase foo.dll并以这种方式安装它。 我还在IE中更改了一堆安全设置,允许我运行未签名的ActiveX控件,一切正常。 现在我需要将其打包在CAB文件中并使用证书进行签名,这样我就不必触及安全设置(因此用户也不必这样做)。 有人能告诉我怎么做吗? 我甚至不确定从哪里开始。 我使用makecert.exe工具创建了一个自签名证书,但我不确定如何将证书绑定到DLL或如何将其打包在CAB中并在网站中使用它。

CefSharp 3在运行时设置代理

我下载了CEF(chromuim嵌入式框架)二进制分发(cefclient&cefsimple)c ++示例,并且实现了cefclient可以在运行时更改代理设置。 这样做的关键是获取RequestContext并调用函数SetPreference。 在CefClient上一切都很好。 但是在CefSharp上,调用SetPreference始终返回false,并且HasPreference对首选项名称“proxy”返回false。

什么是运算符`| =`? 我怎样才能在C#中实现它?

下面的C ++代码是做什么的? 更具体地说,什么是运算符|= ? long liFaultFlags = 0; for (int i = 0; i < FAULTCOUNT; i++) { if (faults[i] == true) { liFaultFlags |= (1 << i); } } return liFaultFlags; 如何在C#中实现?

在onclientclick中将变量传递给javascript

好吧,我想我已经从stackoverflow尝试了3-4种方法,但似乎没有一种方法可行。 我有: OnClientClick=” 但在html中它呈现为: onclick=”doConfirm("delete", "Test");” 还尝试了一个方法来调用: public string CreateConfirmation(String action, String item) { return String.Format(@”return confirm(‘Sikker på du vil {0}: {1}’);”, action, item); } 有了这个: OnClientClick=” 但是给了我完全相同的问题….所以我很丢失?