我刚刚开始使用GenericsC#但很早就遇到了问题,我怎样才能调用.HasFlag()泛型Enum呢?
public class Example<TEnum> where TEnum : struct {
}
Run Code Online (Sandbox Code Playgroud)
如何向其添加[Flags]属性?
使用MVC4和VS2012,我正在使用Service Reference,它自动生成一个Reference.cs文件.当我构建时,我会收到许多警告,因为这些错误可以解读
'缺少对公开可见类型或成员的XML评论......'
我在这里找到了类似的答案,其中引用了此博客中的解决方法,建议在CSProj文件中添加以下修复:
<Target Name="XamlGeneratedCodeWarningRemoved" AfterTargets="XamlMarkupCompilePass1">
<Exec Command="for %%f in (@(XamlGeneratedCodeFiles)) do echo #pragma warning disable > %%f.temp" />
<Exec Command="for %%f in (@(XamlGeneratedCodeFiles)) do type %%f >> %%f.temp" />
<Exec Command="for %%f in (@(XamlGeneratedCodeFiles)) do copy /y %%f.temp %%f" />
<Message Text="XamlGeneratedCodeWarningRemoved: @(XamlGeneratedCodeFiles)" />
</Target>
Run Code Online (Sandbox Code Playgroud)
但这似乎不适用于该Reference.cs文件,可能是因为它是针对性的Xaml?任何人都可以告诉我如何解决这个问题来处理Reference.cs文件或提出另一种方法来解决这个问题?
我不能只是pragma disable在自动生成的代码中添加一个或禁用Xml注释.
我在命令行C#中调用了程序MSTest.其中一个测试用例抛出StackOverflowException并导致QtAgent32(和我的应用程序)进程中断.我能做些什么来防止这种情况(我不能改变单元测试)?
从MVC3应用程序中的帐户控制器中的标准LogOn方法,我该如何测试
Url.IsLocalUrl(returnUrl.ToString())
Run Code Online (Sandbox Code Playgroud)
url不是本地的代码行?换句话说,在进行单元测试时,我必须将这些代码添加到这行代码中,以使其返回false?
我使用了以下思路,这将返回false(非本地):
Uri uri = new Uri(@"http://www.google.com/blahblah.html");
Run Code Online (Sandbox Code Playgroud)
但它只是在单元测试中抛出了一个null异常
编辑:我应该补充一点,LogOn方法现在看起来像这样:
public ActionResult LogOn(LogOnModel model, System.Uri returnUrl)
if (ModelState.IsValid) {
bool loggedOn = LogOn(model);
if (loggedOn) {
if (Url.IsLocalUrl(returnUrl.ToString())) {
return Redirect(returnUrl.ToString());
}
else {
return RedirectToAction("Index", "Home");
}
}
else {
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}
// If we got this far, something failed, redisplay form
return View(viewModel);
}
Run Code Online (Sandbox Code Playgroud)
某些样式警察/代码分析错误强制从字符串参数更改为System.uri参数,但它与标准原始参数非常相似.
只是为了澄清一下,在一个单元测试中 - 我想测试并断言击中Else它重定向到的行的结果Home/Index,所以我需要传递一些东西到(System.Uri)returnUrl它将使它返回false Url.IsLocalUrl而不抛出异常
进一步编辑:
我正在使用MvcContrib …
尝试使用FFMpeg运行以下命令时出错:
-i"file1.mp4"-s 506x406 -b:v 2000k -ar 22050"file2.mp4"
FFMpeg被困这个视频,这只是一个7Mb .mp4文件,几个小时,最终我不得不杀死这个过程.
FFMpeg的输出错误如下:
Converter Error Message:
ffmpeg version N-42069-g3233ad4 Copyright (c) 2000-2012 the FFmpeg developers
built on Jun 30 2012 13:18:20 with gcc 4.7.1
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-runtime-cpudetect --enable-avisynth --enable-bzlib --enable-frei0r --enable-libass --enable-libcelt --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libutvideo --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
libavutil 51. 63.100 / 51. 63.100
libavcodec 54. 31.100 / 54. 31.100
libavformat 54. 14.100 / 54. 14.100
libavdevice …Run Code Online (Sandbox Code Playgroud) 如果问题很明显但我无法弄清楚为什么它突然不起作用,我深表歉意.我有一个jquery datepicker,只要我记得就一直工作正常,但突然间,当我尝试提交datepicker在datepicker上的表单重新出现时,好像我提交的日期无效.我已经使用以下代码行将我的日期设置为英国风格:
<script type="text/javascript">
$(document).ready(function () {
$('.date').datepicker({ dateFormat: "dd/mm/yy", minDate: 0 });
});
</script>
Run Code Online (Sandbox Code Playgroud)
我在我的视图中设置了datepicker,如下所示:
@Html.TextBox("DateDue", "", new { @class = "date" })
Run Code Online (Sandbox Code Playgroud)
我认为有些事情要求选择的日期字符串采用美国格式(因为它将提交有效的我们日期(mm/dd/yyyy),但不提供英国格式,即使它已在javascript中设置.
我错过了一些明显的东西吗 谁能告诉我这里我做错了什么?
我不确定是否有必要,但是datepicker所在的表单是这样创建的:
@using (
Html.BeginForm(
Html.BeginForm(
"Create",
"Task",
FormMethod.Post,
new { id = "taskCreateForm" }
)
)
)
Run Code Online (Sandbox Code Playgroud)
PS.日期字符串实际上有效,并且在Firefox中没有问题但在Chrome中没有问题
任何帮助赞赏
编辑:
当我禁用不显眼的js验证时,问题就消失了:
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"
type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
我有一种感觉,它与此有关,并试图从模型注释中删除[Required]和[DataType(DataType.Date)],但这并没有成功.
不知道怎么留下不引人注目的js以及让英国日期字符串正常工作,但我越来越多地转向为表单编写我自己的javascript验证而不是甚至打扰内置的东西,这似乎从来没有用过比"必需的"验证检查更复杂的事情..
我有一个SQL脚本,它正在设置两个数据库表及其键和约束,没有任何问题.我不会包含整个代码,但它的"骨架"看起来像这样:
BEGIN
CREATE TABLE [table] (
)
CREATE TABLE [table2] (
)
ALTER TABLE table...
ALTER TABLE table2....
END
Run Code Online (Sandbox Code Playgroud)
我很难尝试将存储过程添加到此脚本中,理想情况下,我希望将所有内容都包含在同一个脚本中.有人可以告诉我如何将以下存储过程包含在上面的脚本中吗?
CREATE PROCEDURE Test
@x int
AS
BEGIN
SELECT COUNT(*)
FROM table
END
GO
Run Code Online (Sandbox Code Playgroud)
我已经尝试将它放在脚本的末尾,并且尝试使用和不使用BEGIN,END和GO标记但是我一直收到错误,其中显示"PROCEDURE附近的语法不正确".
我在一个项目中使用临时数据库,该项目处于Application_End:
protected void Application_End() {
if (_db != null) _db.Dispose();
}
Run Code Online (Sandbox Code Playgroud)
问题是Application_End似乎经常在浏览我的web项目时被调用 - 似乎当我编辑db中的对象时,更改成功,数据库被处理,并且当我被重定向到索引 - 已创建新数据库并显示未更改的对象,就好像什么都没发生一样.
不应该在会话结束时或在一定的空闲时间之后调用Application_End吗?
谁能告诉我如何才能确保只在我实际使用完应用程序时调用Application_End?
我试图使用Selenium Internet Explorer驱动程序但是当我尝试实例化它时它会破坏:
[TestInitialize]
public void TestInitialise() {
ieDriver = new InternetExplorerDriver();
}
Run Code Online (Sandbox Code Playgroud)
出现以下错误:
必须将启用保护模式设置为所有区域的相同值(启用或禁用).(NoSuchDriver).
我发现一个明显的解决我的问题在这里,这表明设置驾驶员的DesiredCapabilities,如图所示:
var capabilitiesInternet = new OpenQA.Selenium.Remote.DesiredCapabilities();
capabilitiesInternet.SetCapability("ignoreProtectedModeSettings", true);
IWebDriver webDriver = new InternetExplorerDriver(capabilitiesInternet);
Run Code Online (Sandbox Code Playgroud)
唯一的问题是,我使用的是最新版本的,我能找到的驱动程序,并没有越权为InternetExplorerDriver这需要DesiredCapabilities作为一个参数.
现在有一些新的或其他的设置方式DesiredCapabilites而不是我使用的例子吗?
有没有办法恢复已通过该File.Delete()方法以编程方式删除的文件?
程序删除了一些我需要恢复的文件,它们不会出现在回收站中.