Tag: c ++

Sync Framework 2.1中的BulkInsertCommand失败

有时我尝试使用Sync Framework 2.1从SQL Express同步到SQL Server时出现以下错误。 一旦客户端收到此错误,他们必须重新初始化范围。 像错误状态这样的语法没有任何问题,因为它在很长一段时间内都没有问题(插入发生)。 有什么想法吗? 上午11:18:21无法对表’XXX’执行’BulkInsertCommand’命令; 该交易已回滚。 确保命令语法正确。 上午11:18:21 Microsoft.Synchronization 11:18:21 AM at Microsoft.Synchronization.Data.ChangeHandlerBase.CheckZombieTransaction(String commandName,String table,Exception ex) 从跟踪日志中: 警告,OfflineAgentMonitor.vshost,13,04 / 05/2011 11:16:17:224,批量命令BulkUpdateCommand失败,出现以下exception。 在单次申请期间将重试行。 System.Data.SqlClient.SqlException(0x80131904):尝试传递具有19列的表值参数,其中相应的用户定义表类型需要20列。

如何处理失败的DllImport?

我正在尝试编写一个C#托管类来包装SHGetKnownFolderPath,到目前为止它可以在Vista上运行,但由于没有像预期的那样在shell32.dll中找到正确的函数而在XP上崩溃。 我想让它设置好所以如果使用XP,我可以使用System.Environment.GetFolderPath来回避(通常是hacky)解决方案。 (或者,更好的是,如果它在shell32中找不到function。) 除了条件编译之外,还有什么方法可以做到吗? 我目前的代码如下: public abstract class KnownFolders { [DllImport(“shell32.dll”)] private static extern int SHGetKnownFolderPath([MarshalAs(UnmanagedType.LPStruct)] Guid rfid, uint dwFlags, IntPtr hToken, out IntPtr pszPath); // Trim properties to get various Guids. public static string GetKnownFolderPath(Guid guid) { IntPtr pPath; int result = SHGetKnownFolderPath(guid, 0, IntPtr.Zero, out pPath); if (result == 0) { string s […]

C#委托中的Marshal va_list

我正在尝试从c#开始这项工作: C头: typedef void (LogFunc) (const char *format, va_list args); bool Init(uint32 version, LogFunc *log) C#实现: static class NativeMethods { [DllImport(“My.dll”, SetLastError = true)] internal static extern bool Init(uint version, LogFunc log); [UnmanagedFunctionPointer(CallingConvention.Cdecl, SetLastError = true)] internal delegate void LogFunc(string format, string[] args); } class Program { public static void Main(string[] args) { NativeMethods.Init(5, LogMessage); […]

用于JavaScript混淆的.Net组件?

是否存在用于混淆JavaScript的.Net组件? 我正在动态生成JavaScript并通过ClientScript.RegisterClientScriptBlock发出。 我想让其他人更难以查看和修改该脚本。 注意事项: 是的,我知道JavaScript混淆只会给认真的开发人员带来不便。 我打算添加(非混淆)版权声明。 生成JavaScript的我的C#程序是我真正的增值。 该来源将无法供观众使用。 不过,我想模糊它创建的function和数据。 谢谢!

在C#代码后面显示“是/否”警告框

我试图在C#中的代码隐藏中显示“是/否”消息框。 如果用户单击“是”,我想调用“AddRecord”过程,如果用户单击“否”,则不执行任何操作。 理想情况下,我想使用下面的代码,但是从代码隐藏: OnClientClick = “return confirm(‘Are you sure you want to delete?’);” 我搜索SO和谷歌,但无法找到任何有用的东西。

如何找到具有项目值的列表框项目索引?

我的 MessageBox.Show(listbox.Items[0].ToString()); 是 “abber” 如何找到带有“abber”的列表框项索引0?

unit testingScriptSharp项目中的c#代码

我正在使用ScriptSharp创建一个RIA应用程序。 除了一些古怪的东西之外还可 然而,使用Firebug查找和修复问题并不是很方便。 由于scriptsharp还提供了一个Dll,我希望使用一个单独的测试项目,使用Nunit来测试我的代码的某些部分。 出现的问题是生成的dll引用了mscorlib 0.7,导致与测试项目中的mscorlib 4冲突。 一个简单的解决方案是创建第二个纯C#项目并复制代码文件。 但维护2个具有相同代码库的项目…… 好奇,如果有另一种方法来做到这一点。 任何人? 编辑:Christian Dalager提出的解决方案。 小问题是ScriptSharp在mscorlib中重新定义了System.Diagnostics。 没有Debug.Assert / Writeline。 但现在几乎不再需要它了。

获取HMAC的当前MachineKey或等效值(在Web场中)

我正在使用HMACSHA256在Web场环境中进行消息身份validation。 在web-farm中,每台机器都有相同的机器密钥,因此ViewState可以跨机器工作,但是,我需要进行跨机器的HMAC消息认证,所以我认为由于所有机器都使用相同的机器密钥,因此应该是一种从中导出密钥以用作HMAC密钥的方法。 我注意到在.NET 4.0中有MachineKey类,但是,我仍然坚持使用.NET 3.5 ,这对我来说是不可用的。 有没有办法在不生成自己的机器的情况下获得在所有机器上都相同的排序键,以便在ASP.NET 3.5环境中使用? 编辑 我实际上并不需要机器密钥本身,只需要从机器密钥(或等效的)派生的validation密钥。

从单独的列添加Entity Framework中的日期时间和时间

我想得到所有尚未结束的事件 select * FROM [Events] where EndDate+cast(EndTo as datetime)>GETDATE() 这是完美的。 这是我的价值( EndTo: 11:00:00.0000000, END DATE: 2016-05-26 ) 我试过用 var list = dbContext.Events .Where(e => e.EndDate + e.EndTo > DateTime.Now) .ToList(); 而且我收到了一个错误 DbArithmeticExpression参数必须具有数字公共类型。 如何在Entity Framework中编写此查询?

C#仅使用代码添加引用(没有IDE“添加引用”function)

我正在为一个程序编写一个插件,我想把我的代码放在一个DLL中,这样我就可以自由地共享插件而不暴露(赠送)我的代码。 这是我可以访问的基本结构: using System; public class Plugin { public void Initialize() { //do stuff here doWork(); } } 然后我只引用我的代码所在的.cs文件,程序“吃掉”这个插件。 现在,我已经在其中放置了几个逻辑,主要包括不直接绑定到“Initialize()”的函数,仅在启动整个系统的doWork()函数上。 现在,我想将所有代码放在DLL中,然后从Initialize(),myDll.doWork()(或类似的东西)中调用。 PS:这个dll将是一个已编译的C#库(它可以称为动态程序集导入吗?它不会真正动态,因为它会在执行前编译,对吧?) PS2:这样我还可以添加自定义资源,如表单,图片等,没有太大困难吗? PS3:是否有一个免费的工具来保护这种DLL内的代码? (即避免重新设计) 在此先感谢=)