我想编写一个C#方法,将任何标题转换为URL友好字符串,类似于stackoverflow的作用:
我正在考虑按照RFC 3986标准(来自维基百科)删除保留字符,但我不知道这是否足够?它会使链接可行,但有没有人知道堆栈溢出这里有什么其他字符被替换?我不希望在我的网址中以%-s结尾...
string result = Regex.Replace(value.Trim(), @"[!*'""`();:@&+=$,/\\?%#\[\]<>«»{}_]");
return Regex.Replace(result.Trim(), @"[\s*[\-–—\s]\s*]", "-");
Run Code Online (Sandbox Code Playgroud)
一个子问题
我是否应该将此问题转移到元,即使它与编程相关?
我知道TFS Power工具提供了强大的TFS命令行工具,可以通过Visual Studio集成功能提供更多功能.
我有几个与任何工作项无关的变更集.我想创建一个新的工作项并将这些现有的变更集与它相关联.
这可能吗?我没有看到任何特殊原因,但这取决于命令行工具是否提供此类功能.
假设我的应用程序中有n种类型的用户.
我使用UserType枚举来区分它们.
我是否需要在名为UserType的数据库中保留一个表?
这样我就可以通过查询表而不是搜索应用程序源代码来随时找到用户类型.
这样做我的源代码可能会变得有些复杂.
我应该承认这种交易吗?
我一直在看Sharepoint脚本文件,我遇到过这个我没有得到的:
function ULSTYE() {
var o = new Object;
o.ULSTeamName = "Microsoft SharePoint Foundation";
o.ULSFileName = "SP.UI.Dialog.debug.js";
return o;
}
SP.UI.$create_DialogOptions = function() {
ULSTYE:; <----------------------------- WTF?
return new SP.UI.DialogOptions();
}
Run Code Online (Sandbox Code Playgroud)
实际上,此文件中的每个函数定义都在ULSTYE:;左大括号后面的同一行开头.任何人都能解释第二个函数的第一行是做什么的吗?
例如,Firefox/Firebug将此功能解释为我无法理解的功能:
function () {
ULSTYE: {
}
return new (SP.UI.DialogOptions);
}
Run Code Online (Sandbox Code Playgroud)
我以为我一直都知道Javascript ...... ;)必须是我过去从未使用的一些模糊的功能,显然很少被其他人使用.
在我的Sharepoint代码中,我通过以下方式显示所有已定义用户的列表:
foreach (SPUser user in SPContext.Current.Web.AllUsers)
{
...
}
Run Code Online (Sandbox Code Playgroud)
最重要的是,我可以将域安全组添加到Sharepoint组(如访问者),从而一次添加许多用户(更简单的管理).但是我的代码在第一次登录之前至少没有看到这些用户(如果他们有足够的权限).在这种情况下,我只能看到域安全组SPUser对象实例的IsDomainGroup设置为true.
是否可以通过Sharepoint获取域组成员而无需借助Active Directory查询(这是我宁愿避免的,因为您可能需要足够的权限来执行此类操作=更多管理:Sharepoint权限+ AD权限).
我相信Ext.js正在使用jQuery,但我不确定.有谁知道是否与jQuery和Ext.js完全兼容?
这是一个艰难的一个,因为没有太多人使用Pex和Moles左右我认为(即使Pex是一个非常好的产品 - 比任何其他单元测试工具好得多)
我有一个Data项目,它有一个非常简单的模型,只有一个实体(DBItem).我还在DBRepository这个项目中写了一个操纵这个EF模型的东西.Repository有一个调用的方法GetItems(),它返回业务层项目列表(BLItem),看起来与此类似(简化示例):
public IList<BLItem> GetItems()
{
using (var ctx = new EFContext("name=MyWebConfigConnectionName"))
{
DateTime limit = DateTime.Today.AddDays(-10);
IList<DBItem> result = ctx.Items.Where(i => i.Changed > limit).ToList();
return result.ConvertAll(i => i.ToBusinessObject());
}
}
Run Code Online (Sandbox Code Playgroud)
所以现在我想为这个特定的方法创建一些单元测试.我正在使用Pex&Moles.我为我的EF对象上下文创建了我的鼹鼠和存根.
我想编写参数化单元测试(我知道我已经编写了我的生产代码,但我必须,因为我正在测试Pex和Moles)测试此方法返回有效的项目列表.
这是我的测试类:
[PexClass]
public class RepoTest
{
[PexMethod]
public void GetItemsTest(ObjectSet<DBItem> items)
{
MEFContext.ConstructorString = (@this, name) => {
var mole = new SEFContext();
};
DBRepository repo = new DBRepository();
IList<BLItem> result = …Run Code Online (Sandbox Code Playgroud) 我试图在Visual Studio 2010和Visual Studio 2012中都这样做.如果我的Gruntfile.js文件位于我的项目的根目录中,我可以从post build事件命令行运行"grunt"命令,它运行时没有问题.
grunt or grunt.cmd
Run Code Online (Sandbox Code Playgroud)
但如果它在子目录中
$(ProjectDir)Public\grunt or $(ProjectDir)Public\grunt.cmd
Run Code Online (Sandbox Code Playgroud)
它给了我这个错误
The command "c:\web\Public\grunt.cmd" exited with code 9009.
Run Code Online (Sandbox Code Playgroud)
我一直在研究这个,但我找不到任何帮助.我确实在grunt文档中发现我需要使用"grunt.cmd"而不是仅仅调用"grunt",但这对我没什么帮助.
visual-studio-2010 post-build-event visual-studio-2012 gruntjs
我的数据库中有一个数据表,我存储了各种设置.由于它们是任何类型(甚至是复杂的对象图),我决定将它们的值存储为序列化的JSON字符串.
让我们说我序列化了一个List<ItemBase>.序列化字符串看起来很好.但问题是列表项具有从中继承的各种类型ItemBase(对于我所关心的内容,这也可能是抽象的).
我应该使用哪个(de)序列化类/库,以便正确地反序列化我的JSON字符串以纠正对象实例.
.net json strong-typing javascriptserializer deserialization
最近我必须使用一个输入元素同时使用ng-disabled和一个自定义指令,它使用隔离范围来评估表达式,就像ng-disabled正在做的那样,不知何故,自定义指令工作正常但ng-disabled没有,因为它只评估孤立范围内的表达式.
自定义指令非常简单,如:
angular
.module('directives', [])
.directive('conditionalAutofocus', function () {
return {
restrict:'A',
scope:{
condition:'&conditionalAutofocus'
},
link:function (scope, element, attrs) {
if (scope.condition()) {
attrs.$set('autofocus','true');
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
而页面看起来像:
<input name="pin"
ng-model="pin"
type="password"
required
ng-disabled="names == null"
conditional-autofocus="names != null" />
Run Code Online (Sandbox Code Playgroud)
有人已经解决了这个问题吗?
提前致谢!雅尼
c# ×3
javascript ×2
.net ×1
angularjs ×1
associations ×1
changeset ×1
dns ×1
extjs ×1
gruntjs ×1
jquery ×1
json ×1
replace ×1
scope ×1
sharepoint ×1
sql ×1
tfs-workitem ×1
tfs2010 ×1
unit-testing ×1