我正在考虑使用Unity来管理自定义用户类实例的生命周期.我计划使用自定义ASP.NET会话管理器扩展LifetimeManager.我希望能够做的是从我的自定义类存储和检索当前登录的用户对象,并让Unity从ASP.NET中的会话对象获取User的实例,或者(在Win32项目中时)检索它静态地或从当前线程.
到目前为止,我最好的解决方案是在启动时创建Unity容器的静态实例,并使用Resolve方法从我的每个类中获取我的User对象.但是,这似乎在我的其他类中创建了对unity容器的依赖.实现这一目标的"团结"方式是什么?我希望能够从任何类中读取/替换当前的User实例.
我需要什么命名空间才能使我的扩展工作
这是我的扩展方法
using System;
using System.Collections.Generic;
using System.Web;
using System.Data;
namespace MyUtilities
{
public static class DataReaderExtensions
{
public static DataTable ToDataTable(IDataReader reader)
{
DataTable table = new DataTable();
table.Load(reader);
return table;
}
}
}
当我尝试像这样使用它
Session["Master"] = cust.GetCustomerOrderSummary((string)Session["CustomerNumber"]).ToDataTable();
它不起作用.这是.net 2.0
我正在尝试创建带有两个参数的LaTeX命令,其中之一是可选的。通常我会这样做
\newcommand{\whatever}[2][default]{first #1 second #2}
Run Code Online (Sandbox Code Playgroud)
其中default,第一个参数的默认值。但是对于此命令,我希望将第二个参数的值用作第一个参数的默认值-也就是说,
\whatever{blah}
\whatever{foo}
\whatever[lol]{rofl}
Run Code Online (Sandbox Code Playgroud)
相当于
\whatever[blah]{blah}
\whatever[foo]{foo}
\whatever[lol]{rofl}
Run Code Online (Sandbox Code Playgroud)
有谁知道如何做到这一点?如有必要,我可以使用普通的TeX。
我希望能够隐式地将数字元组(Ints和double)转换为矢量对象.
假设Vector类带有+方法
case class Vector(x: Double, y:Double){
def + (v:Vector)= new Vector(x+v.x,y+v.y)
}
Run Code Online (Sandbox Code Playgroud)
我的目标是让以下代码有效.
val vec = (1,2)+(.5,.3) // vec == Vector(1.5,2.3)
Run Code Online (Sandbox Code Playgroud)
我可以得到它的工作Int有以下
implicit def int2vec(t:Tuple2[Int,Int])=new Vector(t._1,t._2)
val vec = (1,2)+(3,4) // vec == Vector(4.0,6.0)
Run Code Online (Sandbox Code Playgroud)
但是当我添加转换为double时它失败了
implicit def int2vec(t:Tuple2[Int,Int])=new Vector(t._1,t._2)
implicit def double2vec(t:Tuple2[Double,Double])=new Vector(t._1,t._2)
val a = (1,2)
val b = (.5,.3)
val c = (1,1)+b // vec = Vector(1.5,1.3)
val d = (1,2)+(.3,.5) // compile error: wrong number of arguments
val e = (1,2)+((.3,.5)) // compile error: …Run Code Online (Sandbox Code Playgroud) 给定用户提供的复合格式字符串(用于String.Format)和表示将用于格式化复合格式字符串的参数的一组类型,如何检查用户提供的值是否有效?
它应该是很容易地创建一个正则表达式来检查参数占位符的一般语法匹配" {index[,alignment][:formatString]}"每个文档.并且更难以验证复合格式字符串中占位符的索引是否小于实际的类型化参数数量(即它们不引用将不会给出的参数).但是,如果已知传入参数的类型,则还应该可以验证" :formatString"是否适合这些类型.
例如,{0:dddd MMMM}当第一个参数类型(0索引)是数字(String.Format("{0:dddd MMMM}", 1234)产生" dddd MMMM")时,您要验证用户未指定" "作为格式字符串.:formatString按类型的" "选项数量太大,无法手动检查所有内容.还有其他方法吗?或者您是否只需要与可能指定错误格式字符串的用户一起生活?
假设有没有自定义IFormatProvider,ICustomFormatter或IFormattable实现在这里打球.只是.NET Framework中已有的基本类型.用于解决自定义内容的奖励积分.
我看到有000-default虚拟主机,我离开了它.我为mysite.com创建了一个新文件和链接,它可以工作,但不是我想要的.我想知道,有没有人知道我是否需要删除或者我是否应该删除000-default vh?
出于某种原因,如果要访问http://mysite.com,它会将我带到000-default网站,但如果我去http://www.mysite.com,它会把我带到正确的地方.为什么会有区别?
这是mysite.com vh文件:
#NameVirtualHost *
<VirtualHost *:80>
ServerAdmin nick@mysite.com
ServerName mysite.com
ServerAlias www.mysite.com *.mysite.com
DocumentRoot /home/nick/www/mysite.com
ErrorLog /var/log/apache2/mysite.com/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel info
CustomLog /var/log/apache2/mysite.com/access.log common
ServerSignature On
</VirtualHost>
Run Code Online (Sandbox Code Playgroud) 我在2008年初搬到了Delphi 2007.我花了很长时间来迁移我的所有工具和组件,而且我并不急于再次这样做.我从德尔福6号搬了.(买了D2006,但由于迁移问题,没有多大用处).
虽然MSDN/F1帮助"集成",但仍然会让我疯狂.我根据需要访问D6帮助文件和各个供应商帮助文件,但它肯定不如旧的put-your-cursor-on-a-method有用,单击F1 - >你得到一些有用的东西帮助方法,尤其是集成了所有供应商文件.
看来我可能很晚才参加聚会,但显然我并不孤单:http: //blogs.embarcadero.com/deeelling/2007/08/21/38290
我现在看到Embarcadero允许你为Delphi 2007下载CHM文件.他们是否可以完全整合它们,并完全摆脱那些无用的MSDN怪物?
一些cygwin命令是.exe文件,因此您可以使用标准Windows Scheduler运行它们,但是其他没有.exe扩展名,因此无法从DOS运行(看起来像).
比如我想updatedb每晚跑步.
我如何让cron工作?
我知道TDD风格是首先编写测试,看到它失败然后去做绿色,这是好东西.有时它真的对我有用.
然而,特别是当我尝试一些东西(即不确定设计,不确定它是否会起作用)或疯狂编写代码时,我不想编写单元测试,这会打破我的流程.
我倾向于稍后编写单元测试,特别是在事情变得过于复杂之前.还有另外一个问题,以后写它们通常更无聊.
我不太确定这是不是一个好方法(绝对不是最好的).
你怎么看?您是否编写代码以后编写单元测试?或者您如何处理此流程问题或实验设计/代码阶段.