有没有办法可以重命名我启动的应用程序的窗口标题栏?即如果我启动了Notepad.exe,我可以将其标题栏从"Untitled - Notepad"重命名为"New Notepad Name".
我有一些代码的例子,我经常在网站上看到我希望改进并希望得到一些帮助.我经常在page_load方法中看到5-10个嵌套的if语句,旨在消除无效的用户输入,但这看起来很难看,难以阅读和维护.
您如何建议清理以下代码示例?我试图消除的主要是嵌套的if语句.
string userid = Request.QueryString["userid"];
if (userid != ""){
user = new user(userid);
if (user != null){
if (user.hasAccess){
//etc.
}
else{
denyAccess(INVALID_ACCESS);
}
}
else{
denyAccess(INVALID_USER);
}
}
else{
denyAccess(INVALID_PARAMETER);
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,这很快就会变得非常混乱!在这种情况下,我应该遵循任何模式或做法吗?
有没有办法从一个Expression<Func<T>,bool>?拉出属性,运算符和匹配值?给出以下示例:
var customers = GetCustomers();
var customerQuery = customers.Where(x=> x.CustomerID == 1
&& x.CustomerName == "Bob"); // The query is for illustration only
Run Code Online (Sandbox Code Playgroud)
我需要能够得到以下内容:
Property: CustomerID
Operator: Equals
Value: 1
Property: CustomerName
Operator: Equals
Value: Bob
Run Code Online (Sandbox Code Playgroud)
我已经编写了一些可以提取Expression的属性名称的东西,但我似乎无法找到值和运算符的位置,尽管它在Expression的DebugView属性中非常清晰可见.
我正在开发一些项目来改进我的HTML和CSS.其中一个是简单的数独求解器.我需要创建一个Grid,在其中放置标签或TextBoxes.我想要一个与此问题中的网格图像完全相同的网格布局.
实现这一目标的最佳方法是什么?CSS ......还是表?我将如何创建这个?
我正在使用以下代码捕获window.onbeforeunload事件:
window.onbeforeunload = function (evt)
{
if(checkIsDirty())
{
var message = 'If you continue your changes will not be saved.';
if (typeof evt == 'undefined')
{
//IE
evt = window.event;
}
if (evt)
{
evt.returnValue = message;
}
else
{
return message;
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我在结果确认中单击"取消"时,我收到错误"未知异常",调试器突出显示以下内容:
onclick="location.href='/<WhicheverPageYouRequested>.aspx';
Run Code Online (Sandbox Code Playgroud)
如果单击"确定",页面将完全更改.为什么我会收到此错误,我该如何解决?
假设我有classA,其中包含classB,两者都是[Serializable].
我假设,在反序列化中,classB将首先被反序列化.
但事实并非如此,因为我可以通过记录每个[OnDeserialized]方法被击中来确认.
现在我有以下问题:
在classA的反序列化完成后,它应该使用classB中的值进行自我设置.不幸的是,此时尚未对classB进行反序列化,因此classA设置错误.
我的问题将得到解决,如果我可以强制BinaryFormatter在classA之前反序列化classB,或者将对象图从底部到顶部而不是从上到下解析.
另一个明显的解决方案是让classB在反序列化时激活一个事件然后让classA自行设置,但我想远离这个非优雅的解决方法.
如果有人知道更好的解决方案,我将不胜感激.
在下面的scenaio中,如何使用AJAX检查会话是否仍处于活动状态,然后将用户返回到登录页面?
理想情况下,我所追求的是每1分钟检查会话状态以查看用户是否空闲的某种方式.如果它们处于空闲状态且会话即将到期,我会暂时保存更改,然后当会话到期时,我会在用户从空闲状态返回之前自动将页面更改为登录屏幕.
是否也可以在不使用setTimeOut()的情况下执行此操作?
我的所有自定义实体集合都有一个基类,它的简单版本如下:
[Serializable]
public class CollectionBase<T> : List<T> where T : IEntity
{
public bool IsDirty {get;}
public new void Add(T item)
{
this.SetDirty();
base.Add(item);
item.MadeDirty += new EventHandler(item_MadeDirty);
}
// Other standard list methods overridden here
...
public void SetDirty() { } // Mark the collection as dirty
private void item_MadeDirty(object sender, EventArgs e)
{
this.SetDirty();
}
}
Run Code Online (Sandbox Code Playgroud)
集合位于一个序列化的类中Session(即,会话中的Customer类具有Order实体的集合).问题是我的实体基类的MadeDirty事件如下:
[field: NonSerialized()]
public event EventHandler MadeDirty;
Run Code Online (Sandbox Code Playgroud)
不幸的是,我不能只删除NonSerialized事件上的属性,因为这会在部署到我的应用程序服务器时导致会话状态服务器出现问题.
有没有什么办法可以在CollectionBase上捕获反序列化的完成事件,这样我就可以遍历所有项目并MadeDirty从Session 重新分配每个反序列化的事件?即
private void OnDeserialized(object sender, EventArgs e) …Run Code Online (Sandbox Code Playgroud) 我有一个ASP.NET 4站点,我想让人们在他们的密码中加上"<".但是,.NET通过阻止(它看到的)尝试将HTML放在表单字段中来阻碍.我知道我可以完全关闭输入验证,但我只想为这一个字段关闭它.有谁知道一个简单的方法吗?
我正在尝试编写Entity Framework Code First的附加组件,我需要一种方法来在运行时获取模型列的配置.例如,这是对码设置OnModelCreating由DbModelBuilder:
builder.Entity<NwdEmployee>()
.Property(n => n.ReportsToID).HasColumnName("ReportsTo");
Run Code Online (Sandbox Code Playgroud)
完成后,EntityFramework知道我的属性的名称与表中的列名不同,但是如何在运行时找到该字符串"ReportsTo"与ReportsToID我自己相关?理想情况下,我正在尝试编写如下方法:
public string GetMappedColumnName<TFrom>(DbContext context,
Func<TFrom, object> selector);
Run Code Online (Sandbox Code Playgroud)
将使用如下:
string mappedColumnName = GetMappedColumnName<NwdEmployee>(context,
x => x.ReportsToID);
Run Code Online (Sandbox Code Playgroud)
我只是不知道在DbContext中找到映射列名的位置.它们甚至可以访问吗?
asp.net ×5
c# ×5
reflection ×2
.net ×1
ajax ×1
coding-style ×1
css ×1
func ×1
html ×1
if-statement ×1
javascript ×1
linq ×1
process ×1
session ×1
titlebar ×1
validation ×1
webforms ×1
window ×1