获取控制器中强类型模型的“密钥”

所以我试图在控制器中获取模型对象的密钥,以便我可以向其添加AddModelError 。 在我看来我用 @Html.ValidationMessageFor(model => model.Email) 什么是等效的代码来获取要在控制器中添加的Key名称,以便它附加到此ValidationMessage。

使用C#中的位字段进行编组

是否可以将包含位字段的C风格结构编组到C#结构中,或者您是否必须将其编组为基本类型然后执行位掩码? 例如,我想从这样的C风格结构编组: struct rgb16 { unsigned int R : 4; unsigned int G : 5; unsigned int B : 4; } 并将其编组为以下内容: [StructLayout(LayoutKind.Sequential)] public struct Rgb16 { public byte R; public byte G; public byte B; }

.Net中的LDAP目录条目 – 不适用于OU =用户

我有以下代码(C#): (调来自: http ://www.eggheadcafe.com/conversation.aspx?smessidid = 31766061&threadid = 31766050) DirectorySearcher dseSearcher = new DirectorySearcher(); string rootDSE = dseSearcher.SearchRoot.Path; DirectoryEntry rootDE = new DirectoryEntry(rootDSE); string userDSE = rootDSE.Insert(7, “OU=Users,”); DirectoryEntry userDE = new DirectoryEntry(userDSE); rootDSE是正确创建的,但是,如果我尝试使用它,则用户userDSE不可用并抛出“服务器上没有此类对象”exception。 LDAP字符串如下: Root:LDAP:// DC =公司,DC =本地 用户:LDAP:// OU =用户,DC =公司,DC =本地 我作为管理员在Vista上运行,但也需要在XP(管理员)上工作。 我是LDAP和目录管理的新手,所以我在这里黑暗中磕磕绊绊。 有什么想法吗? 此外 – 任何链接的文章,可以让我了解它如何工作将不胜感激。

无法确定条件表达式的类型(Func)

将方法分配给Func类型时,我得到编译错误Type of conditional expression cannot be determined because there is no implicit conversion between ‘method group’ and ‘method group’ 。 这只发生在? : ? :运营商。 代码: public class Test { public static string One(int value) { value += 1; return value.ToString(); } public static string Two(int value) { value += 2; return value.ToString(); } public void […]

在没有第三方框架的情况下从HttpWebResponse反序列化JSON的方法

我试图避免依赖开源或第三方库(如Json.NET)来解析来自HttpWebResponse的传入JSON。 为什么? 因为更多地依赖开源框架来帮助实现,你的应用程序必须依赖这些依赖关系…我不喜欢我的应用程序依赖很多库,如果可能的话。 我可以使用像Enterprise Library这样的东西,因为它支持MS,但我正在使用更多的开源库。 无论如何,我试图找出解析.NET 3.5中传入的JSON服务器端的最佳方法。 我知道这会得到很多响应,我甚至使用.NET 3.5 JavaScriptSerializer将数据序列化为JSON,但现在我正试图找出最好和最简单的方法来做反向,不用了使用第三方/开源框架来帮助解决这个问题。

绑定到列表会导致内存泄漏

当我将ListBox的ItemsSource绑定到List时,绑定引擎在控件消失后保持列表元素。 这会导致所有列表元素保留在内存中。 使用ObservalbleCollection时问题就消失了。 为什么会这样? 窗口标记内的xaml GC 代码背后: public MainWindow() { InitializeComponent(); DataContext = new ViewModel(); } private void Button_Click(object sender, RoutedEventArgs e) { this.DataContext = null; ContentControl.Content = null; GC.Collect(); GC.WaitForPendingFinalizers(); } 视图模型 class ViewModel : INotifyPropertyChanged { //Implementation of INotifyPropertyChanged … //Introducing ObservableCollection as type resolves the problem private IEnumerable _list = new List […]

CSV解析

我正在尝试使用C#来解析CSV。 我使用正则表达式来查找”,”并且如果我的标题计数等于我的匹配计数则读取字符串。 如果我有一个像这样的值,这将不起作用: “a”,””b”,”x”,”y””,”c” 然后我的输出是: ‘a’ ‘”b’ ‘x’ ‘y”‘ ‘c’ 但我想要的是: ‘a’ ‘”b”,”x”,”y”‘ ‘c’ 我可以使用任何正则表达式或任何其他逻辑吗?

即使应用程序没有聚焦,钩子/检测窗口语言也会改变

有没有办法检测即使我的应用程序不在焦点时Windows / OS语言是否发生了变化? 到目前为止,只有当应用程序集中使用时,我才能实现我想要的: string language = “”; System.Windows.Input.InputLanguageManager.Current.InputLanguageChanged += new System.Windows.Input.InputLanguageEventHandler((sender, e) => { language = e.NewLanguage.DisplayName; MessageBox.Show(language); }); 但是你可以理解,这不是我想要的…… 我正在考虑其他解决方案,例如挂钩改变语言的键(例如alt + shift)但我无法知道当前使用的语言和用户可以更改默认热键… 非常感谢您的帮助。

当前用户目录与root不同时,无法使用ftp方法重命名文件

备注:由于垃圾邮件防范机制,我被迫将Uris的开头从ftp://替换为ftp。 我有以下问题。 我必须使用C#ftp方法上传文件,然后重命名它。 容易,对吗? 🙂 好吧,假设我的ftp主机是这样的: ftp.contoso.com 登录后,当前目录设置为: 用户/名称 所以,我想要实现的是登录,将文件作为file.ext.tmp上传到当前目录,上传成功后,将文件重命名为file.ext 正如我猜测的那样,整个难题是为FtpWebRequest正确设置请求Uri。 MSDN声明: URI可以是相对的或绝对的。 如果URI的格式为“ ftp://contoso.com/%2fpath”(%2f是转义’/’),那么URI是绝对的,当前目录是/ path。 但是,如果URI的格式为“ ftp://contoso.com/path ”,则首先.NET Framework登录到FTP服务器(使用Credentials属性设置的用户名和密码),然后是当前目录设置为UserLoginDirectory / path。 好的,所以我使用以下URI上传文件: ftp.contoso.com/file.ext.tmp 好的,文件落在我想要的位置:在目录“users / name”中 现在,我想重命名该文件,因此我使用以下Uri创建Web请求: ftp.contoso.com/file.ext.tmp 并指定重命名为参数: file.ext 这给了我550错误:找不到文件,没有权限等。 我在Microsoft网络监视器中跟踪了它,它给了我: 命令:RNFR,重命名自 CommandParameter:/file.ext.tmp Ftp:响应端口53724,’550文件/file.ext.tmp未找到’ 好像是在根目录中查找文件 – 而不是在当前目录中。 我使用Total Commander手动重命名了文件,唯一的区别是CommandParameter没有第一个斜杠: CommandParameter:file.ext.tmp 我可以通过提供以下绝对URI来成功重命名该文件: ftp.contoso.com/%2fusers/%2fname/file.ext.tmp 但我不喜欢这种方法,因为我必须知道当前用户目录的名称。 它可以通过使用WebRequestMethods.Ftp.PrintWorkingDirectory来完成,但它增加了额外的复杂性(调用此方法来检索目录名称,然后组合路径以形成正确的URI)。 我不明白为什么URI ftp.contoso.com/file.ext.tmp适合上传而不是重命名? 我在这里错过了什么吗? 该项目设置为.NET 4.0,在Visual Studio 2010中编码。 编辑 好的,我放置了代码片段。 […]

Rhino Mocks – 如果调用方法,则设置属性

如果调用方法,有没有办法让Rhino Mocks设置Stub的属性。 这样的事情:(粗体假代码) callMonitor.Expect(X => x.HangUp())。 SetProperty(callMonitor.InACall = false) ; HangUp方法返回void,我无法真正改变它。 但是我希望我的存根知道在调用HangUp时挂断了呼叫。