草庐IT

using-redis-cache-backend-and-ses

全部标签

C# 代码简化查询 : The Null Container and the Foreach Loop

我经常有这样的代码:if(itm!=null){foreach(typexinitm.subItems()){//dostuff}}//domorestuff在省略//domorestuff的情况下,很容易避免额外的foreach循环。通过使用适当的命令退出作用域(根据发生的情况,这通常意味着return语句或continue语句)。这种类型的东西往往会导致箭头代码。我目前有几种方法来处理这个问题:使用itm=itm==null这样的代码?itm.subItems():空数组允许箭头代码使用goto使用邪恶的范围黑客(将整个事情,所有的if语句包装在一个范围内,然后突破它)。在我看来,

c# - "The binary operator Add is not defined for the types ' System.String ' and ' System.String '."-- 真的吗?

尝试运行以下代码时:Expression>stringExpression=Expression.Lambda>(Expression.Add(stringParam,Expression.Constant("A")),newList(){stringParam});stringAB=stringExpression.Compile()("B");我收到标题中提到的错误:“二元运算符Add没有为类型‘System.String’和‘System.String’定义。”真的是这样吗?显然在C#中它有效。在C#中执行strings="A"+"B"是表达式编译器无法访问的特殊语法糖吗?

c# - LINQ 如何在 using 语句中延迟执行

假设我有以下内容:privateIEnumerableMyFunc(parametera){using(MyDataContextdc=newMyDataContext){returndc.tablename.Select(row=>row.parameter==a);}}privatevoidUsingFunc(){varresult=MyFunc(newa());foreach(varrowinresult){//Dosomething}}根据文档,linq执行将推迟到我实际枚举结果时,该结果出现在foreach的行中。但是,using语句应强制在调用MyFunct()结束时可靠地

c# - 混淆使用 "using"语句 C#

根据MSDNLibraryusingStatement(C#Reference)Definesascope,outsideofwhichanobjectorobjectswillbedisposed.但是我得到了一些用户在这里发布的这段代码,我对此感到困惑:(请参阅我对代码的评论)using(OleDBConnectionconnection=newOleDBConnection(connectiongString)){if(connection.State!=ConnectionState.Open)connection.Open();stringsql="INSERTINTOStu

c# - 乐观并发 : IsConcurrencyToken and RowVersion

我正在创建将在我的应用程序中使用的默认并发策略。我决定采用乐观策略。我的所有实体都映射为TableperType(TPT)(使用继承)。我很快了解到,在EntityFramework上使用带有继承的RowVersion类型的列时会出现问题:ProductIdINTIDENTITYPRIMARYKEYRowVersionROWVERSIONCar(inheritsProductrecords)ColorTYNIINTNOTNULL,AnotherProperty....   如果我更新Car表的记录,Product表中的RowVersion列将不会更新。我计划在Product中使用类型为

C# : Implicit conversion between '<null>' and 'bool'

当我尝试转换object时收到奇怪的错误消息至bool,这是我的代码:publicpartialclassModifierAuteur:DevExpress.XtraEditors.XtraForm{publicModifierAuteur(objectgetKeyDecesCheckBox){decesCheckBox.Checked=getKeyDecesCheckBox==null?null:(bool)getKeyDecesCheckBox;}}这是错误信息:Typeofconditionalexpressioncannotbedeterminedbecausethereisn

c# - 查看缓存在System.Web.HttpRuntime.Cache中的数据

是否有任何工具可用于查看HttpRunTime缓存中的缓存数据..?我们有一个Asp.Net应用程序,它正在将数据缓存到HttpRuntime缓存中。给定的默认值是60秒,但后来更改为5分钟。但是感觉缓存的数据在5分钟之前就刷新了。不知道下面发生了什么。是否有任何可用的工具或我们如何查看缓存在HttpRunTime缓存中的数据……以及过期时间……?以下代码用于将项目添加到缓存。publicstaticvoidAdd(stringpName,objectpValue){intcacheExpiry=int.TryParse(System.Configuration.Configurati

c# - ASP.NET 5(核心): How to store objects in session-cache (ISession)?

我正在编写一个ASP.NET5MVC6(Core)应用程序。现在我需要在session缓存(ISession)中存储(设置和获取)一个对象。您可能知道,ISession的Set方法接受一个byte-array和Get-方法返回一个。在非核心应用程序中,我会使用BinaryFormatter来转换我的对象。但是我怎样才能在核心应用程序中做到这一点呢? 最佳答案 我会将对象序列化为JSON,并使用ISession上的扩展方法将它们保存为string。//Savevarkey="my-key";varstr=JsonConvert.Ser

c# - 递归 LINQ 查询 : select item and all children with subchildren

有没有什么方法可以编写一个LINQ(或过程式)查询,它可以通过一个查询选择一个项目和所有子项?我有实体:publicclassComment{publicintId{get;set;}publicintParentId{get;set;}publicintText{get;set;}}我有一个ID,所以我想选择带有ID的Comment及其所有子项和子项。示例:1-2--3-4-5--623如果ID==1那么我想要1,2,3,4,5,6的列表。 最佳答案 publicclassComment{publicintId{get;set;}

c# - 简单注入(inject)器 : Register ILogger<T> by using ILoggerFactory. CreateLogger<T>()

我正在处理一个使用简单注入(inject)器作为依赖注入(inject)器的项目。另一方面,该项目使用Microsoft.Extensions.Logging来记录某些类中发生的事件。我的技术问题很容易解释。我想在我的DI中独立于正在调用的类T注册ILogger,但是我确实需要从我的ILoggerFactory.CreateLogger()中完成它方法,因为这会使用Microsoft.Extensions.Configuration获取记录器配置.我需要使用这样的东西来实例化我的记录器:privateMicrosoft.Extensions.Logging.ILoggerCreateL