小编Ste*_*edy的帖子

使用C#进行URL编码

我有一个应用程序向VB论坛软件发送POST请求并记录某人(没有设置cookie或任何东西).

一旦用户登录,我创建一个在其本地计算机上创建路径的变量.

C:\ tempfolder \日\用户名

问题是一些用户名正在抛出"非法字符"异常.例如,如果我的用户名是,mas|fenix它会抛出异常..

Path.Combine( _      
  Environment.GetFolderPath(System.Environment.SpecialFolder.CommonApplicationData), _
  DateTime.Now.ToString("ddMMyyhhmm") + "-" + form1.username)
Run Code Online (Sandbox Code Playgroud)

我不想从字符串中删除它,但是在服务器上通过FTP创建了带有用户名的文件夹.这导致了我的第二个问题.如果我在服务器上创建一个文件夹,我可以留下"非法字符"吗?我只是问这个,因为服务器是基于Linux的,我不确定Linux是否接受它.

编辑:似乎URL编码不是我想要的..这是我想要做的:

old username = mas|fenix
new username = mas%xxfenix
Run Code Online (Sandbox Code Playgroud)

其中%xx是ASCII值或任何其他可以轻松识别字符的值.

.net c# urlencode

316
推荐指数
11
解决办法
56万
查看次数

如何使用C#在.NET中获取格式化的JSON?

我正在使用.NET JSON解析器,并希望序列化我的配置文件,以便它是可读的.所以代替:

{"blah":"v", "blah2":"v2"}
Run Code Online (Sandbox Code Playgroud)

我想要更好的东西:

{
    "blah":"v", 
    "blah2":"v2"
}
Run Code Online (Sandbox Code Playgroud)

我的代码是这样的:

using System.Web.Script.Serialization; 

var ser = new JavaScriptSerializer();
configSz = ser.Serialize(config);
using (var f = (TextWriter)File.CreateText(configFn))
{
    f.WriteLine(configSz);
    f.Close();
}
Run Code Online (Sandbox Code Playgroud)

.net c# json javascriptserializer

234
推荐指数
12
解决办法
20万
查看次数

如何将MVC5添加到Visual Studio 2013?

我正在开始一个新项目,并想尝试MVC 5(我之前使用MVC 4构建了一个Web应用程序).

在Visual Studio 2013中,我单击New Project并导航到Visual C#> Web> Visual Studio 2012(即使我已经安装了VS 2013,它在菜单中显示2012),在该列表中我只有MVC 4应用程序 - 而不是5.

下拉菜单中的框架设置为.NET Framework 4.5.1 - 但仍然没有.

我检查了工具>扩展和更新,并搜索了MVC 5 - 但它没有找到任何官方的微软.

如何将MVC 5添加到Visual Studio 2013?

谢谢

visual-studio-2013 asp.net-mvc-5

215
推荐指数
4
解决办法
18万
查看次数

在Visual Studio 2017中未发现单元测试

自从我安装它以来,我一直在与VS 2017挣扎.现在似乎单元测试只能从命令行"dotnet test"运行.

我的项目是.NET Core 1.1.1.我安装了SDK和1.1.1的框架更新.

我在MSDN上尝试了这个示例(https://msdn.microsoft.com/en-us/library/ms182532.aspx),它也完全失败了.

测试和主项目的所有NuGet包都是最新的.测试项目和主项目都没有错误地构建.测试从命令行成功运行.

有没有人在VS 2017中进行单元测试,如果是这样的话怎么样?

谢谢,约翰


更新 - 扩展

以下是一个不能在GitHub上运行的简单测试项目的示例.这是xUnit的一个例子,但我尝试过在MS测试中构建的NUnit和visual studio.无论我做什么测试或改变我都无法让VS测试运行器找到任何测试.

我试过的

  • 删除VS测试缓存文件 DEL %TEMP%\VisualStudioTestExplorerExtensions
  • 重启VS.
  • 关闭/打开测试资源管理器
  • 安装xUnit Microsoft.DotNet.InternalAbstractions(参见SO帖子)
  • 对于NUnit,请确保已安装适配器,并且与NUnit软件包版本(3)相同
  • test -> test settings -> default processor architecture 设置为x86

问题
任何人都可以在VS2017(.csproj项目文件)中提供.Net Core 1.1.0解决方案的工作示例,其中VS测试资源管理器成功找到单元测试在给出的示例中向我显示问题.

unit-testing visual-studio-2017

202
推荐指数
12
解决办法
14万
查看次数

171
推荐指数
5
解决办法
6万
查看次数

YouTube API用于获取频道上的所有视频

我们需要按YouTube频道名称的视频列表(使用API​​).

我们可以使用以下API获取频道列表(仅限频道名称):

https://gdata.youtube.com/feeds/api/channels?v=2&q=tendulkar
Run Code Online (Sandbox Code Playgroud)

以下是频道的直接链接

https://www.youtube.com/channel/UCqAEtEr0A0Eo2IVcuWBfB9g
Run Code Online (Sandbox Code Playgroud)

要么

WWW.YouTube.com/channel/HC-8jgBP-4rlI
Run Code Online (Sandbox Code Playgroud)

现在,我们需要频道>> UCqAEtEr0A0Eo2IVcuWBfB9g或HC-8jgBP-4rlI的视频.

我们尝试了

https://gdata.youtube.com/feeds/api/videos?v=2&uploader=partner&User=UC7Xayrf2k0NZiz3S04WuDNQ https://gdata.youtube.com/feeds/api/videos?v=2&uploader=partner&q=UC7Xayrf2k0NZiz3S04WuDNQ

但是,它没有帮助.

我们需要在频道上发布的所有视频.上传到频道的视频可能来自多个用户,因此我认为提供用户参数不会有帮助......

youtube youtube-api

166
推荐指数
12
解决办法
19万
查看次数

如何获得浏览器的滚动条大小?

如何在JavaScript中确定水平滚动条的高度或垂直滚动​​条的宽度?

javascript scrollbar

157
推荐指数
10
解决办法
15万
查看次数

"无法直接启动具有类库的输出类型的项目"

我是C#和Visual C#IDE的新手,我根本不知道如何使用它们.我在EclipseIDE上用C编写了我的所有生命.我已经在几个地方搜索过如何解决这个问题,但无法得到正确的程序.因为这个原因,我在这里发布了这个问题.

我下载了一个C#项目,我希望调试项目以了解算法实现的工作原理.

该项目已进入文件夹,在此文件夹中有 -

  1. .sln文件
  2. 一个文件夹,它有 - 源文件和.csproj文件.

我安装了Visual Studio C#Express并打开了VS C#IDE中主文件夹中的.sln文件.我成功构建了项目,但是当我尝试调试项目时,我得到了以下消息:

无法直接启动具有类库的输出类型的项目为了调试此项目,请向此解决方案添加可执行项目,该项目引用库项目.将可执行项目设置为启动项目.

奇怪的是我在任何地方都看不到主要功能.

我应该怎么做才能超越这个打嗝?

c# visual-studio

149
推荐指数
9
解决办法
29万
查看次数

检查类是否具有给定签名的成员函数

我要求一个模板技巧来检测一个类是否具有给定签名的特定成员函数.

问题类似于这里引用的问题 http://www.gotw.ca/gotw/071.htm 但不一样:在Sutter的书中,他回答了C类必须提供成员函数的问题.一个特定的签名,否则程序将无法编译.在我的问题中,我需要做一些事情,如果一个类有这个功能,否则做"其他".

boost :: serialization面临类似的问题,但我不喜欢他们采用的解决方案:模板函数默认调用具有特定签名的自由函数(您必须定义),除非您定义特定的成员函数(在他们的情况下"序列化",它采用给定类型的2个参数)与特定签名,否则将发生编译错误.那就是实现侵入式和非侵入式序列化.

我不喜欢这个解决方案有两个原因:

  1. 要非侵入式,您必须覆盖boost :: serialization命名空间中的全局"序列化"函数,因此您可以在您的客户端代码中打开命名空间提升和命名空间序列化!
  2. 解决这个混乱的堆栈是10到12个函数调用.

我需要为没有该成员函数的类定义自定义行为,并且我的实体位于不同的名称空间内(我不想覆盖在一个名称空间中定义的全局函数,而我在另一个名称空间中)

你能给我一个解决这个难题的提示吗?

c++ templates sfinae c++11

124
推荐指数
11
解决办法
7万
查看次数

禁用浏览器链接 - 哪个工具栏

我想禁用visual studio浏览器链接.我发现了这个问题: 如何在VS.NET 2013中禁用__vwd/js/artery? 和许多其他资源说我应该在工具栏中注释"启用浏览器链接",但该工具栏不会显示在我的visual studio中.我启用了所有调试工具栏,但仍然没有浏览器链接按钮.

visual-studio browser-link

120
推荐指数
5
解决办法
5万
查看次数