通常当Page_LoadVisual Studio 将事件处理程序添加到代码隐藏文件时(例如,在设计器模式下双击页面),它最终看起来像这样:
/// <summary>
/// Handles the Load event of the Page control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
protected void Page_Load(object sender, EventArgs e)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
但是Resharper建议道Name 'Page_Load' does not match rule 'Methods, properties and events'. Suggested name is 'PageLoad'.我猜有一种更好的方法来定义页面加载的处理程序,但我不记得语法是什么,但我想它会解决这个Resharper警告?
也许是这样的:
/// <summary>
/// Raises the <see cref="E:System.Web.UI.Control.Load"/> event.
/// </summary>
/// <param name="e">The <see cref="T:System.EventArgs"/> object that contains …Run Code Online (Sandbox Code Playgroud) 从星期四开始,我一直在用这个小问题敲打砖墙,而且我还没有比那时候更接近答案.
我有一个用户控件,它有如下属性:
/// <summary>
/// Gets or sets the media types.
/// </summary>
/// <value>The media types.</value>
public List<MediaType> MediaTypesFilter { get; set; }
Run Code Online (Sandbox Code Playgroud)
MediaType是一个枚举,包含None,PDF,Image等.
我想要的是能够在设计时设置用户控件的mediatypes(使用intellisense),例如:
<CMS:MediaPicker ID="MediaPicker runat="server" MediaTypesFilter="PDF, Image">
Run Code Online (Sandbox Code Playgroud)
或者更可能导致这样的事情:
<CMS:MediaPicker ID="MediaPicker" runat="server">
<MediaTypesFilter>
<MediaType>PDF</MediaType>
<MediaType>Image</MediaType>
</MediaTypesFilter>
</CMS:MediaPicker>
Run Code Online (Sandbox Code Playgroud)
我想我需要在属性上使用属性,比如DesignerSerializationVisbility等,但我无法弄明白.我读过有关CollectionEditors的内容,我读过的内容表明默认的CollectionEditor应该能够处理这个问题,所以我认为我不需要创建自定义的CollectionEditor.到目前为止,我最接近的是内部属性,无法设置哪种媒体类型.我似乎无法找到枚举列表的任何示例作为在设计时使用的属性.有人可以指出我正确的方向或给我一些示例代码做我正在尝试做的事情?
现在,我最终得到了一个逗号分隔的字符串,并且在我需要它时会以编程方式将其拆分为一个列表,但这意味着在设计时没有智能感知,这很糟糕.
我在我们的项目中继承了代码,看起来像这样.这是课堂上的一种方法.
protected override bool Load()
{
DataAccess.SomeEntity record;
try
{
record = _repository.Get(t => t.ID.Equals(ID));
if (record == null)
{
throw new InvalidOperationException("failed to initialize the object.");
}
else
{
this.ID = record.ID;
// this.OtherProperty = record.SomeProperty;
// etc
}
}
catch (Exception)
{
throw;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
如果我然后从我的UI层调用这个Load方法,我可能想要一个try catch块来捕获由于加载实例失败导致的任何异常,例如InvalidOperationException,但上面的代码对我来说是错误的.
catch语句不会吞下InvalidOperationException吗?catch语句还将捕获_repository.Get的潜在问题,以及如果记录有效则设置属性的潜在问题.
我想我应该通过添加更多try catch语句来重组它来分别处理Get操作和属性设置操作,或者添加更多catch块来处理不同的异常,但我问了一位同事,他建议try catch与此无关.案件,应该完全删除,留下如下:
protected override bool Load()
{
DataAccess.SomeEntity record;
record = _repository.Get(t => t.ID.Equals(ID));
if (record == null)
{
throw new InvalidOperationException("failed to initialize the object.");
} …Run Code Online (Sandbox Code Playgroud) 我有一台Windows 7机器,我可以在其上执行PHP/MySql Dev和.NET/C#/ Sql Server编码.由于最近重新安装,我认为这可能是尝试让我的机器更清洁而不是安装Apache和IIS等的理想时间.
我安装了VirtualBox,Ubuntu 10.04作为客户操作系统,计划将我的PHP开发从旧的Windows/Apache/MySql平台移动到这个虚拟映像上.除此之外,我想将CruiseControl/phpUnderControl添加到我的PHP开发过程中.
到目前为止,我已经安装了带有LAMP堆栈的Ubuntu 10.04,以及用于PHP的Netbeans,MySQL Workbench等,这实际上与我的旧Windows开发设置相同,但我现在还安装了SVN和CruiseControl(我'尚未安装phpUnderControl,但这是下一步).
我的问题是,我可以将此虚拟映像用作我的"本地"开发环境和构建服务器,这样我就不需要使用MySql/PHP相关软件来混乱我的本机Windows机器(这意味着我可以保持它很好并为.NET开发干净)?
我想我需要虚拟网络服务器能够为我正在处理的任何给定项目提供"本地"开发版本,以及使用cruisecontrol/svn提交构建的暂存版本?
或者我应该将我的开发和构建服务器分开,或者将本地开发保留在Windows中,并仅将虚拟映像用于构建服务器?或者可能有两个单独的虚拟机用于不同的目的?
我很欣赏一些关于设置它的最佳方法的建议.我想要处理的其中一个项目非常复杂,所以我想确保在开始项目之前以正确的方式解决这个问题,这样我就能确保项目得到很好的维护,包括版本控制,单元测试和持续集成,我是否需要让其他开发人员参与该项目.
我们有一个支持希腊文、西里尔文、中文字符的系统(使用 ASP.NET C# 4.0)。但是第三方系统似乎无法正常工作。为避免在为该第三方系统输入数据时出现问题,我想将文本字段限制为仅接受英语或重音字符,但为其他字符返回验证错误。
我怎样才能做到这一点?似乎我可以使用 \p{Latin} 这样的正则表达式,但是根据我的经验,C# 似乎不支持这一点,因为我收到Unknown property 'Latin'错误消息。
我正在努力让这个工作.网上有很多例子,但是他们都做了一些与我打算做的事情略有不同的事情,而且每当我想我能解决它时,我就会遇到一个对我没有任何意义的错误.
在放弃JSLint.VS插件之后,我正在尝试创建一个批处理文件,我可以从Visual Studio构建事件或者巡航控制中调用该文件,这将为项目生成JSLint警告.最终目标是获取一个可以传递给jslint的组合js文件,使用:
cscript jslint.js < tmp.js
Run Code Online (Sandbox Code Playgroud)
这将验证我的脚本是否已准备好合并到一个文件中以便在js minifier中使用,或者使用标准输出输出一堆错误.
但构成tmp.js的js文件可能位于项目的多个子文件夹中,例如:
D:\_projects\trunk\web\projectname\js\somefile.debug.js
D:\_projects\trunk\web\projectname\js\jquery\plugins\jquery.plugin.js
Run Code Online (Sandbox Code Playgroud)
理想的解决方案是能够按以下方式调用批处理文件:
jslint.bat %ProjectPath%
Run Code Online (Sandbox Code Playgroud)
然后,这会将项目中的所有js文件合并到一个temp js文件中.通过这种方式,我可以灵活地将项目传递给批处理文件.
我一直在努力使这个工作与copy,xcopy,type和echo,并使用for do循环,使用dir/s等,使它做我想要的,但无论我尝试什么,我得到一个错误.
c# ×3
.net ×1
apache ×1
batch-file ×1
controls ×1
enums ×1
file ×1
latin ×1
list ×1
merge ×1
pageload ×1
php ×1
properties ×1
regex ×1
resharper ×1
subdirectory ×1
svn ×1
unicode ×1
virtualbox ×1
windows ×1