如何为字符串格式提供自定义字符串占位符

我有一个字符串 string str =”Enter {0} patient name”; 我正在使用string.format来格式化它。 String.Format(str, “Hello”); 现在,如果我想要从某些配置中检索患者,那么我需要将str更改为”Enter {0} {1} name” 。 因此它将用第二个值替换{1}。 问题是我想要{1}而不是{1}其他格式的东西,比如{pat} 。 但是当我尝试使用时,它会抛出一个错误。 我想要一种不同格式的原因是我需要改变很多文件(可能包含{0},{1}等)。 所以我需要一个可以在运行时替换的自定义占位符。

避免硬编码控制器和操作名称

ASP.NET MVC似乎鼓励我使用硬编码字符串来引用控制器和操作。 例如,在控制器中: return RedirectToAction(“Index”, “Home”); 或者,在一个视图中: Html.RenderPartial(“Index”, “Home”); 我不想在我的代码中使用硬编码字符串。 我该怎么做才能避免这种情况?

是否可以将linq的reflection用于实体?

我试图通过创建一个扩展方法来一般地处理过滤来清理我的代码。 这是我想要清理的代码。 var queryResult = (from r in dc.Retailers select r); if (!string.IsNullOrEmpty(firstName)) queryResult = queryResult.Where(ex => SqlFunctions.PatIndex(firstName.Trim(), ex.FirstName.Trim()) > 0); if (!string.IsNullOrEmpty(lastName)) queryResult = queryResult.Where(ex => SqlFunctions.PatIndex(lastName.Trim(), ex.LastName.Trim()) > 0); if (!string.IsNullOrEmpty(companyName)) queryResult = queryResult.Where(ex => SqlFunctions.PatIndex(companyName.Trim(), ex.CompanyName.Trim()) > 0); if (!string.IsNullOrEmpty(phone)) queryResult = queryResult.Where(ex => SqlFunctions.PatIndex(phone.Trim(), ex.Phone.Trim()) > 0); if (!string.IsNullOrEmpty(email)) queryResult = […]

是否有Visual Studio的Breakpoint插件?

背景 在一些足够大的应用程序中,您可以花更多的时间来确定如何深入到各个层,而不是实际调试:我现在正在使用的一个软件就是这种情况。 除了关注问题的布局/分离之外,最好有一个断点插件,允许您根据正在处理的Bugzilla / Jira / Fogbugz / SVN缺陷条目加载断点。 题 是否存在Visual Studio的任何插件,允许您将切换的断点“保存”到文件中,允许您根据正在处理的错误加载各种断点? 作为该问题的附属物; 如果没有任何这样的插件,有人能指出我为Visual Studio创建插件的’好’(非常主观的术语,但在这种情况下,我的意思是解释性和有用的)资源?

MVVM – validation

我们试图在mvvm中确定在业务逻辑或模型中进行validation的validation。 我在业务逻辑中实现了exception类型的validation – 可以在这里找到简化的图表: 如果我们有很多输入彼此独立,那么没有问题,抛出exception,文本框会抓住它,标记为每个错误输入的边框为红色。 但是,当我们有依赖值时,我们就遇到了麻烦。 例如 模型中的Value1和Value2必须不一样,所以我们在每个查找equals值的函数中都有一个validate函数,如果发生这种情况则抛出exception 现在,如果我们将Value1设置为0而将Value2设置为1,一切都很好 Value1在GUI中设置为1 – >这个被标记为红色,因为未触发其他值的validation,因此GUI中的Value2未标记为错误 在GUI中将Value2设置为2,现在我们已达到有效状态,但只有Value2得到validation,因此Value1仍被标记为有错 有没有一个共同的模式来解决这个问题? 我们不希望在两个文本框之间的GUI中引入依赖关系,因为此逻辑应仅存在于业务逻辑层中。 除了通过exception实现validation之外,还可以实现IDataErrorInfo接口,但问题仍然存在,没有办法强制依赖值再次validation它们的值,至少没有我能看到:) 任何帮助表示赞赏 欢呼,曼尼 [清理,删除不必要的步骤] 15.11.2010 – 第2部分 好的,在这里重新思考,我们将继续使用businesslogic层。 这是我们当前计划的配置: (图像在这里缩小了一点,请在单独的窗口打开以显示全尺寸)一切都或多或少都清楚,除了如果数据模型如何通知不同编辑器的所有视图模型/模型克隆在业务逻辑下变了。 一种方法是跟踪创建它们的业务逻辑中的克隆模型。 使用业务逻辑commit()更改数据模型时,可以将所有其他已注册的模型克隆通知更改并进一步传播它们。 或者,业务逻辑可以发布所有视图模型订阅的事件,以便他们也可以获得更改 – 任何人都可以给我一个提示更好的提示吗? 再次感谢您的帮助,对不起,我是如此精神错乱;)

你能帮我理解一个实际例子中的抽象类和接口的用法吗?

你能否给我一个对抽象类和inheritance使用几乎过于简单化的理解并帮助我,这样我才能真正理解这个概念以及如何实现? 我有一个项目,我正在努力完成,并且失去了如何实施。 我一直在和我的教授聊天,并被告知,如果我无法弄明白,我可能还没准备好上课。 我已经完成了prequestite课程,但仍然无法理解这些概念。 为了澄清,到目前为止我所做的项目如下。 我还没有填写狗/猫类等。 你能指点一下吗? 我不是要求任何人给我“答案”。 我只是迷失在哪里。 我参加在线课程,他与我的沟通工作一直令人不安。 我刚刚完成了所有其他课程的4.0,所以我愿意付出努力,但我对这些概念的理解以及如何实际应用它们感到迷茫。 是否有任何意见或帮助可以让我在这个项目中取得进一步进展? 我要实现的内容如下: 概述: 本练习的目的是演示Interfaces,Inheritance,Abstract classes和Polymorphism的使用。 您的任务是获取提供的程序shell并添加适当的类和相应的类成员/方法,以使此程序正常运行。 您不能对提供的任何代码进行更改,您只能添加您编写的类。 尽管有许多方法可以使程序正常工作,但您必须使用演示接口使用的技术, inheritance,抽象类和多态。 同样,为了清楚起见,您可以添加到提供的代码,但不能更改或删除任何代码。 提供的代码将使用非常少的附加代码,并将满足练习的要求。 如果成功完成分配,程序运行时应输出以下语句: 我的名字是Spot,我是一只狗 我的名字是费利克斯,我是一只猫 要求: 1)您必须有一个名为“Animal”的抽象基类,Dog和Cat类可以从中派生出来。 2)Animal基类必须从接口’IAnimal’派生,它是唯一应该从IAnimal派生的类。 3)由于所有动物都有一个名字,一个名字不是一个特定于狗或猫的属性,动物 基类应该是存储名称的位置以及实现WhatIsMyName get-property的位置。 4)您需要创建一个仅从Animal基类派生的Dog和Cat类。 5)Dog和Cat类应该实现WhatAmI get-property并返回相应的字符串值。 您无法更改的代码: using System; namespace IT274_U2 { public interface IAnimal { string WhatAmI { get; } string WhatIsMyName { get; } } […]

ASP.NET Core JWT映射角色声明为ClaimsIdentity

我想使用JWT保护ASP.NET Core Web API。 另外,我想有一个选项,直接在控制器动作属性中使用来自令牌有效负载的角色。 现在,虽然我确实找到了如何将其与策略一起使用: Authorize(Policy=”CheckIfUserIsOfRoleX”) ControllerAction()… 我想最好选择使用通常的东西: Authorize(Role=”RoleX”) 其中Role将从JWT有效负载自动映射。 { name: “somename”, roles: [“RoleX”, “RoleY”, “RoleZ”] } 那么,在ASP.NET Core中实现这一目标的最简单方法是什么? 有没有办法通过一些设置/映射自动工作(如果是这样,在哪里设置它?)或者我应该在validation令牌后拦截ClaimsIdentity生成并手动添加角色声明(如果是,在何处/如何去做?)?

如何将user.config保存到AppData \ Roaming文件夹而不是AppData \ Local?

介绍性例子 这段代码 Properties.Settings.Default.MyUserSettingBlah = “some new value”; Properties.Settings.Default.Save(); 将user.config文件保存到 C:\Users\MyUserName\AppData\Local\My_Company_Name\MyApp_Url_vb2s5kwidefdmxstmabckatcyl5t0lxd\1.0.0.0\user.config 题 如何将user.config保存到 C:\ Users \ MyUserName \ AppData \ Roaming \ … 代替 C:\ Users \ MyUserName \ AppData \ Local \ …?

在C#中赢得api。 从IntPtr获取高低字

我试图在C#中处理WM_MOUSEMOVE消息。 从lParam获取X和Y坐标的正确方法是什么?这是一种IntPtr?

动态扩展应用程序的function?

我最近遇到了一种在使用ASP.NET MVC3 / 4时开发可插拔应用程序模块的方法,我喜欢这种方法的简单性。 目前,我的应用程序结构如下: 因此,任何想要为我的应用程序开发扩展的人都遵循上述教程中的方法,并创建一个保留在Areas文件夹中的扩展。 我想,当添加新Areas (创建为新项目)时,会创建.pdb文件并将其放在bin目录中。 我的问题是: 如何将Areas分配为可插拔模块? 如何更改以下代码,以便当有人将新Area放入bin文件夹时,应用程序会自动选择它并创建链接? 插件作者应该怎么做才能启用它? 在我的_Layout.cshtml (全局共享布局)中,我执行以下操作来构建链接: @Html.ActionLink(“Area1”, “Index”, “Area1”, new { Area = “Area1” }, null) @Html.ActionLink(“Area2”, “Index”, “Area2”, new { Area = “Area2” }, null) @Html.ActionLink(“Area3”, “Index”, “Area3”, new { Area = “Area3” }, null) 为简单起见,假设区域名称是唯一的。 有关如何做到这一点的任何建议?