草庐IT

net_kernel

全部标签

c# - 如何在 ASP.NET MVC 中保持 Controller 较小?

我有一个设计得很好的架构,其中Controller转到访问与数据库通信的存储库的服务。因此,Controller中的逻辑保持在最低限度,但我仍然有非常微妙的代码片段来执行一些任务,例如验证模型安排Action方法参数使用这些参数调用一些服务,如果模型现在无效,可能会验证结果并返回View最终根据服务的结果生成一个模型,并将其返回。一些较长的案例根据服务返回的“状态”做不同的事情。举几个例子:[HttpPost][AjaxOnly][Authorize]publicJsonResultPreview(stringinput){LinkResultparsed=linkService.Pa

c# - ASP.NET MVC4 多语言数据注解

在标准应用程序中,我有以下内容:[Required][DisplayName("EmailAddress")]publicstringEmailAddress{get;set;}...这反过来会自动为这个表单域生成一个英文标签。现在,如果我需要我的应用程序支持5种语言,ASP.NETMVC应用程序处理此问题的最佳方法是什么?适用范围约400-600个数据字段。更新:我还需要支持更新应用程序中的小部分文本,例如页面名称和每个表单的介绍(小段落)。 最佳答案 不是将实际值分配给属性特性,而是为资源字符串分配键。然后,您可以使用自定义Mo

c# - 使用 ASP NET MVC 4 和 webapi 的自定义 http 处理程序和路由处理程序

我正在研究ASPNETMVC4和WebApi。移动设备将使用webapi方法。我们需要保护服务,我们正在使用的是以某种特定方式加密数据。现在,我需要在到达Controller之前解密调用。如果解密的信息有效,它应该像往常一样继续到Controller,如果不是,我会将用户路由到一些错误方法。要实现这一点,我认为最好的办法是自定义HttpHandler和自定义RouteHandler。我正在学习教程herepublicclassMvcSecurityRouteHandler:IRouteHandler{publicSystem.Web.IHttpHandlerGetHttpHandler

c# - 使用反射确定 .Net 类型在内存中的布局方式

我正在尝试用C#优化解析器组合器。当序列化格式与内存中格式匹配时,一种可能的优化是只对要在该类型的一个实例或什至多个实例上解析的数据执行(不安全的)memcpy。我想编写代码来确定内存格式是否与序列化格式匹配,以便动态确定是否可以应用优化。(显然,这是一个不安全的优化,可能由于一大堆微妙的原因而无法工作。我只是在试验,不打算在生产代码中使用它。)我使用属性[StructLayout(LayoutKind.Sequential,Pack=1)]强制不填充并强制内存中的顺序与声明顺序匹配。我用反射检查该属性,但实际上所有这些都确认是“无填充”。我还需要字段的顺序。(我强烈希望不必为每个字段

c# - 在 .NET 应用程序中在哪里设置默认区域性

我正在编写一个WPF应用程序,但在文化方面遇到了一些困难。我想知道当没有明确设置值时,.NET应用程序从哪里获取CurrentThread.CurrentCulture的值。它不是来自Windows区域性信息,因为我已将其从en-US更改为en-GB,但在运行时没有注意到应用程序有任何变化。请帮忙!标记 最佳答案 来自thefinemanual:SeetheCultureInfo.CurrentCulturepropertytolearnhowathread'sdefaultcultureisdetermined,andhowuse

c# - 在 .Net 中使用 ObjectCache 缓存对象并过期

我陷入了一个场景。我的代码如下:更新:它与如何使用数据缓存无关,我已经在使用它及其工作,它是关于扩展它的,因此该方法不会在到期时间和从外部源获取新数据之间进行调用object=(string)this.GetDataFromCache(cache,cacheKey);if(String.IsNullOrEmpty(object)){//getthedata.Ittakes100msSetDataIntoCache(cache,cacheKey,object,DateTime.Now.AddMilliseconds(500));}因此,如果项目过期,用户会调用缓存并从中获取数据,并从服务

c# - .net clr方法表结构

我目前正在阅读名为Pro.NETPerformance的书。其中一章包含有关引用类型内部结构的详细信息。方法表是引用类型布局结构的内部字段之一。在这本书中说,方法表由有关类的所有方法的信息组成。我正在尝试用一个小程序来验证这个理论classMyClass{publicvoidM(){}}staticvoidMain(string[]args){MyClassm=newMyClass();m.M();Console.ReadLine();}我用WinDbg启动这个程序我的WinDbgsession如下所示!clrstack-aConsoleApp.Program.Main(System.

c# - 如何在 .NET Core 库中使用 Windows 运行时类?

我正在开发一个用于WPF和Windows10的库。我遇到了在后者上编译它的问题。以下是部分代码:project.json{"frameworks":{"net46":{"frameworkAssemblies":{"WindowsBase":"4.0.0.0"}},"netcore50":{"dependencies":{"Microsoft.NETCore.UniversalWindowsPlatform":"5.0.0"}}}}依赖.csusingSystem;usingSystem.Collections.Generic;#ifNET46usingSystem.Windows;/

c# - 使用 JsonConverter 的 Json.NET 自定义序列化 - 如何获得 "default"行为

我的类DataType有一个JsonConverter。当在Json中使用纯字符串作为DataType类型的属性值时,我想做一些特殊处理。在值是“完整”对象的情况下,我想进行“正常”反序列化。这是我的尝试publicoverrideobjectReadJson(JsonReaderreader,TypeobjectType,objectexistingValue,JsonSerializerserializer){if(reader.Value!=null&&reader.ValueType==typeof(string)){returnsomeSpecialDataTypeInsta

c# - .NET Core 中 Microsoft Fakes 的任何替代方案?

我正在寻找.NETCore中MicrosoftFakes的替代品。我知道.NETCore不再支持它。我只是不明白为什么不,我认为在某些情况下这是一个很好的解决方案。我的问题是我想模拟DateTime.Now。以前您可以使用以下代码执行此操作:System.Fakes.ShimDateTime.NowGet=()=>{returnnewDateTime(2000,1,1);};它在Microsoft文档中有描述,请参阅链接以获取更多信息:https://learn.microsoft.com/en-us/visualstudio/test/using-shims-to-isolate-y