我正在开发一个ASP.NET MVC项目,并希望使用强类型的会话对象.我已实现以下Controller派生类来公开此对象:
public class StrongController<_T> : Controller
where _T : new()
{
public _T SessionObject
{
get
{
if (Session[typeof(_T).FullName] == null)
{
_T newsession = new _T();
Session[typeof(_T).FullName] = newsession;
return newsession;
}
else
return (_T)Session[typeof(_T).FullName];
}
}
}
Run Code Online (Sandbox Code Playgroud)
这允许我为每个控制器定义一个会话对象,这符合控制器隔离的概念.是否有更好/更"正确"的方式,也许是微软官方支持的方式?
我有一个旧分支,我想删除.但是,在执行此操作之前,我想检查对此分支所做的所有提交是否在某个时刻合并到其他分支中.因此,我希望看到所有提交到我当前分支的提交尚未应用于任何其他分支[或者,如果没有一些脚本,这是不可能的,如何看到一个分支中尚未应用的所有提交到另一个给定的分支?].
在Java中,可以使用Collections#unmodifiableList()方法从现有List对象创建不可修改的列表.C#中有没有对应的?我是该语言的新手,并且在MSDN文档中找不到这样的内容.
我维护一个应用程序,它充当多个单独程序的容器.这些程序有自己的专用日志记录工具,即他们记录的所有内容都对特殊的日志文件.
尽管如此,应用程序开发人员似乎总是喜欢抛出System.out.println并e.printStackTrace调用,因此在运行容器时无法维护干净的控制台.
我怎样才能防止污染这些应用程序System.out和System.err?
实施说明:
更新:
简单地重定向System.out不起作用,因为它重定向所有输出,所以这样的事情失败:
System.setOut(new PrintStream(new OutputStream() {
@Override
public void write(int b) {
throw new Error("Not on my watch you don't");
}
}));
Logger logger = Logger.getLogger(Runner.class);
logger.info("My log message");
Run Code Online (Sandbox Code Playgroud)
这应该成功.
更新2:
使用类似的代码加载和配置应用程序
App app = new UrlClassLoader(...).loadClass(className)).newInstance();
app.setLogger(loggerForClass(app));
Run Code Online (Sandbox Code Playgroud)
Log4j从系统类加载器加载.
我正在尝试这样做,但我能得到的是一些我不知道如何处理的源代码我从http://pkgconfig.freedesktop.org/releases/下载.
有帮助吗?
我创建了一个相当简单的照片库,我想应用PayPal Checkout按钮.基础很简单,但我想要做的是至少预先填充命名字段作为按钮的一部分或将每个单独页面中包含的变量传递到购物车.
每个页面都包含图片ID,日期和标题.我希望能够传递这些数据,以便当有人点击"添加到购物车"时,数据已经存在.现在,我可以看到按钮工作的唯一方法是创建自定义字段并让客户自己复制和粘贴数据,这很痛苦.
如果我能算出这一点,PayPal结账可能值得一试.有人在这做过吗?
我需要在web.config文件中重新创建一个提供程序,如下所示:
<membership defaultProvider="AspNetSqlMemProvider">
<providers>
<clear/>
<add connectionStringName="TRAQDBConnectionString" applicationName="TRAQ" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="0"
name="AspNetSqlMemProvider"
type="System.Web.Security.SqlMembershipProvider, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"
/>
</providers>
</membership>
Run Code Online (Sandbox Code Playgroud)
但是,我收到运行时错误,说无法加载此程序集,我认为这是因为我有错误的PublicKeyToken.如何查找我的程序集的PublicKeyToken?
或者,我是否完全采用错误的方式?
在我的网站上,您可以搜索"广告"或"分类广告".有不同的类别.
使用多个表格进行搜索会更快,每个类别对应一个,还是不重要?
我们正在讨论大约50万个广告.
如果它不会减慢搜索速度,请解释自己,以便我理解为什么它不会,因为似乎常识,你拥有的广告越多,搜索就越慢!
谢谢
我有两个应用程序在W2k8 R2 x64上运行,一个被编译为64位,另一个被编译为32位,因为它具有COM依赖性.在这两个我试图打电话:
Process p = Process.Start("telnet.exe", string.Format("{0} {1}", address, port));
Run Code Online (Sandbox Code Playgroud)
在x64中它工作得很好,但是在32位中我得到一个System.ComponentModel.Win32Exception("系统找不到指定的文件")?
知道这里发生了什么吗?即使我打电话
Process.Start(@"C:\Windows\System32\telnet.exe")
我得到同样的例外?
谢谢,
汤姆
c# ×3
.net ×2
java ×2
64-bit ×1
asp.net-mvc ×1
branch ×1
c#-4.0 ×1
checkout ×1
collections ×1
dll ×1
git ×1
git-branch ×1
javac ×1
log4j ×1
logging ×1
mysql ×1
paypal ×1
pkg-config ×1
session ×1
sql ×1
unmodifiable ×1
windows ×1