我想将以下字符串转换为提供的输出.
Input: "\\test\red\bob\fred\new"
Output: "testredbobfrednew"
Run Code Online (Sandbox Code Playgroud)
我还没有发现,将处理特殊字符,如任何解决方案\r,\n,\b,等.
基本上我只是想摆脱任何不是字母数字的东西.这是我试过的......
Attempt 1: "\\test\red\bob\fred\new".replace(/[_\W]+/g, "");
Output 1: "testedobredew"
Attempt 2: "\\test\red\bob\fred\new".replace(/['`~!@#$%^&*()_|+-=?;:'",.<>\{\}\[\]\\\/]/gi, "");
Output 2: "testedobred [newline] ew"
Attempt 3: "\\test\red\bob\fred\new".replace(/[^a-zA-Z0-9]/, "");
Output 3: "testedobred [newline] ew"
Attempt 4: "\\test\red\bob\fred\new".replace(/[^a-z0-9\s]/gi, '');
Output 4: "testedobred [newline] ew"
Run Code Online (Sandbox Code Playgroud)
另一个尝试有多个步骤
function cleanID(id) {
id = id.toUpperCase();
id = id.replace( /\t/ , "T");
id = id.replace( /\n/ , "N");
id = id.replace( /\r/ , "R");
id = id.replace( /\b/ , "B");
id = …Run Code Online (Sandbox Code Playgroud) 在尝试为Google网站站长工具设置我的网站后,我发现我的自定义ASP.NET 404页面未返回404状态代码.它显示了正确的自定义页面并告诉浏览器一切正常.这被认为是软404或假404.谷歌不喜欢这个.所以我发现了很多关于这个问题的文章,但我想要的解决方案似乎没有用.
我想要解决的解决方案是将以下两行添加到自定义404页面的Page_Load方法后面的代码中.
Response.Status = "404 Not Found";
Response.StatusCode = 404;
Run Code Online (Sandbox Code Playgroud)
这不起作用.页面仍然返回200 OK.然而,我发现如果我将以下代码硬编码到设计代码中,它将正常工作.
<asp:Content ID="ContentMain" ContentPlaceHolderID="ContentPlaceHolderMaster" runat="server">
<%
Response.Status = "404 Not Found";
Response.StatusCode = 404;
%>
... Much more code ...
</asp:content>
Run Code Online (Sandbox Code Playgroud)
该页面正在使用母版页.我正在我的web.config中配置自定义错误页面.我真的宁愿使用后面的代码选项但我似乎无法在设计/布局中放入黑客内联代码使其工作.
我需要在XML模式(.xsd)文件中使用不区分大小写的字符串枚举类型.通过执行以下操作,我可以使用不区分大小写.
<xs:simpleType name="setDigitalPointType">
<xs:restriction base="xs:string">
<xs:pattern value="[Oo][Nn]" />
<xs:pattern value="[Oo][Ff][Ff]" />
</xs:restriction>
</xs:simpleType>
Run Code Online (Sandbox Code Playgroud)
唯一的问题是我没有枚举值.使用Visual Studio编写XML时,我不会得到漂亮的intellesense.以下将给出我的枚举,但它区分大小写.
<xs:simpleType name="setDigitalPointType">
<xs:restriction base="xs:string">
<xs:enumeration value="on" />
<xs:enumeration value="off" />
</xs:restriction>
</xs:simpleType>
Run Code Online (Sandbox Code Playgroud)
这将给我我的枚举,但如果我收到"开","开"或"否"的值,它将无法验证.
我想要枚举"on","off"并允许输入不区分大小写的版本.
我正在创建一个自定义.net硬件框架,其他程序员将使用它来控制某些硬件.他们将添加对我们的DLL的引用以进入我们的硬件框架.我需要一个可以从多个应用程序(进程)访问的共享类.
单例模式似乎是我需要的,但它只适用于进程内的多个线程.我可能完全错了,但这是我目前拥有的C#代码的一个例子.我不禁觉得设计不正确.我希望我可以分享更具体的信息,但我不能.
框架:(共享DLL)
public class Resources
{
static readonly Resources m_instance = new Resources();
public string Data;
private Resources()
{
Data = DateTime.Now.ToString();
}
public static Resources Instance
{
get
{
return m_instance;
}
}
}
Run Code Online (Sandbox Code Playgroud)
测试应用程序:(最终客户应用程序)
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Press enter to capture the resource!");
Console.ReadLine();
var resources = Resources.Instance;
Console.WriteLine("\r\n{0}: {1}\r\n", Thread.CurrentThread.ManagedThreadId, resources.Data);
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += WorkerDoWork;
worker.RunWorkerAsync();
while (worker.IsBusy)
{
Thread.Sleep(100);
}
Console.WriteLine("Press enter to close the …Run Code Online (Sandbox Code Playgroud) 我想在控制器中为ViewBag分配一个值,以便稍后在View中使用,它会抱怨以下错误.
像这样在Controller中分配值.
ViewBag["isAdmin"]=true;
Run Code Online (Sandbox Code Playgroud)
错误:
Cannot apply indexing with [] to an expression of type 'System.Dynamic.DynamicObject'
Run Code Online (Sandbox Code Playgroud)
以前有人有这个吗?
我需要一段代码来检测网络连接是连接还是断开连接.连接状态意味着电缆已插入以太网连接.断开状态意味着没有连接电缆.
由于我在Windows CE上运行,我无法使用WMI界面.我不介意调用Win32 API,但请记住我正在使用Windows CE并在Compact Framework上运行.
我在Windows CE上运行并使用Compact Framework.我需要获取我的应用程序已加载的所有引用程序集的列表.能够访问这些程序集的AssemblyName(对象)会很高兴.
一个例子就像通过执行以下操作来获取正在运行的程序集:Assembly.GetExecutingAssembly(); 除了我需要获得所有其他加载程序集(第三方Dll)的引用.
完整框架具有Assembly.GetExecutingAssembly().GetReferencedAssemblies()方法,但它在Compact Framework上不可用.任何帮助,将不胜感激.
我想要做的是使用Visual Studio 2012附带的默认MVC 4模板作为我的新项目的基础.但是,我想用自定义成员资格提供程序替换SQL提供程序,以便我可以访问我的RavenDB来获取我的用户.我已经像以前一样实现了自定义提供程序,但WebSecurity方法抛出了以下异常.
这行代码:
ViewBag.HasLocalPassword = OAuthWebSecurity.HasLocalAccount(WebSecurity.GetUserId(User.Identity.Name));
具体方法是:
WebSecurity.GetUserId
抛出这个例外:
在调用"WebSecurity"类的任何其他方法之前,必须调用"WebSecurity.InitializeDatabaseConnection"方法.此调用应放在站点根目录中的_AppStart.cshtml文件中.
现在我无法调用InitializeDatabaseConnection,因为我的提供程序不是SQL提供程序.此方法需要SQL提供程序和SQL连接字符串.这是一个常见问题还是我错过了什么?为什么必须初始化WebSecurity,为什么只能使用SQL提供程序进行连接?
我是否必须将代码更改为不使用WebSecurity类?
我整天都在这里,我很累.我希望我没有忽视一些简单的事情.也许还有一个朗姆酒和可乐会帮助......
更新:2012年8月19日
我反编译GetUserId方法,发现它失败的唯一原因是因为VerifyProvider调用.
public static int GetUserId(string userName)
{
WebSecurity.VerifyProvider();
MembershipUser user = Membership.GetUser(userName);
if (user == null)
return -1;
else
return (int) user.ProviderUserKey;
}
private static ExtendedMembershipProvider VerifyProvider()
{
ExtendedMembershipProvider membershipProvider = Membership.Provider as ExtendedMembershipProvider;
if (membershipProvider == null)
throw new InvalidOperationException(WebDataResources.Security_NoExtendedMembershipProvider);
membershipProvider.VerifyInitialized();
return membershipProvider;
}
Run Code Online (Sandbox Code Playgroud)
现在,它在VerifyProvider方法中失败的唯一原因是因为调用了VerifyInitialized,我无法在我的成员资格提供程序中覆盖它.此外,如果它没有调用我的提供程序,那么我不确定在处理VerifyInitialized时调用了什么代码.
internal virtual void VerifyInitialized()
{
}
Run Code Online (Sandbox Code Playgroud)
我正在删除Web.Config中的所有其他成员资格提供程序.至少我想我是.这是条目.
<membership defaultProvider="RavenMembershipProvider">
<providers>
<clear />
<add name="RavenMembershipProvider" type="BigGunsGym.Infrastructure.Providers.RavenMembershipProvider" />
</providers>
</membership>
Run Code Online (Sandbox Code Playgroud) asp.net-membership membership-provider webmatrix asp.net-mvc-4
我希望我只是在看一些非常简单的东西……
由于我没有访问我的个人MSDN(专业)的Fakes的事实,因此我必须提供一个使用Moq的测试。只有高级版和旗舰版才能使用伪造品。单元测试必须能够在不访问任何外部资源的情况下运行。无法使用实体框架DbContext连接到SQL数据库。
public static string ToDetailedString(this Exception ex)
{
var builder = new StringBuilder();
AddExceptionToBuilder(builder, ex);
return builder.ToString();
}
private static void AddExceptionToBuilder(StringBuilder builder, Exception ex)
{
builder.Append(builder.Length > 0 ? "\r\n" + ex.Message : ex.Message);
var validationException = ex as DbEntityValidationException;
if (validationException != null)
{
foreach (var detail in validationException.EntityValidationErrors.SelectMany(error => error.ValidationErrors))
{
builder.Append("\r\n" + detail.PropertyName + " : " + detail.ErrorMessage);
}
}
if (ex.InnerException != null)
{
AddExceptionToBuilder(builder, ex.InnerException);
}
}
Run Code Online (Sandbox Code Playgroud)
这就是为什么如此难以测试的原因。这不像创建一个新的DbEntityValidationException那样简单,因为您必须传递DbEntityValidationResult的列表。如果不提供DbEntityEntry,则无法实例化DbEntityValidationResult。我发现创建DbEntityEntry的唯一方法是从DbContext.Entry()获取它。这意味着您必须具有需要访问数据库的有效DbContext。
这是我唯一能够执行的代码,但是它需要访问数据库。
/// <summary>
/// …Run Code Online (Sandbox Code Playgroud) 这是一个魔兽世界(魔兽世界)lua脚本问题.这里没有多少人被问到,但我无处可转,Stackoverflow是程序员绿洲的答案.
题:
Wowwiki说第2,第3,第4个参数是你的调用函数第1,第2,第3个参数.我不认为这是真的.我发现第3,第4,第5个参数最终成为第1,第2,第3个参数.
链接:http://www.wowwiki.com/API_pcall
功能:
function myTest(arg1)
return arg1 .. 10;
end
Run Code Online (Sandbox Code Playgroud)
问题:
local retOK, ret1 = pcall(myTest,"string value");
Run Code Online (Sandbox Code Playgroud)
当我尝试样本时,我得到一个错误"尝试在本地'arg1'上执行连接(一个零值)".如果我将代码更改为:
local retOK, ret1 = pcall(myTest,"string value", "bob");
Run Code Online (Sandbox Code Playgroud)
然后我得到"bob10"的输出.第二个论点去哪里了,它的用途是什么?
更多测试:
function BobsToolbox:RunTest()
local test1, value1 = pcall(BobsToolbox.Test1, "string value");
SharpDeck:Print("Test1: " .. tostring(test1) .. " Value: " .. tostring(value1));
end
function BobsToolbox:Test1(arg1)
return arg1 .. "10";
end
Run Code Online (Sandbox Code Playgroud)
结果:尝试连接本地'arg1'(零值)
function BobsToolbox:RunTest()
local test1, value1 = pcall(Test1, "string value");
SharpDeck:Print("Test1: " .. tostring(test1) .. " Value: " .. tostring(value1));
end …Run Code Online (Sandbox Code Playgroud) c# ×5
windows-ce ×2
.net ×1
asp.net ×1
assemblies ×1
dll ×1
ethernet ×1
frameworks ×1
javascript ×1
lua ×1
master-pages ×1
networking ×1
regex ×1
schema ×1
simpletype ×1
singleton ×1
webmatrix ×1
xml ×1