小编Bob*_*non的帖子

从字符串中删除不是字母数字字符.遇到[\]字符时遇到问题

我想将以下字符串转换为提供的输出.

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)

javascript regex

205
推荐指数
6
解决办法
21万
查看次数

ASP.NET自定义404返回200 OK而不是404 Not Found

在尝试为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中配置自定义错误页面.我真的宁愿使用后面的代码选项但我似乎无法在设计/布局中放入黑客内联代码使其工作.

c# asp.net master-pages custom-errors http-status-code-404

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

XML模式案例简单类型字符串的不敏感枚举

我需要在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"并允许输入不区分大小写的版本.

xml schema case-sensitive simpletype

16
推荐指数
2
解决办法
2万
查看次数

DLL中的Singleton类可以跨进程共享吗?

我正在创建一个自定义.net硬件框架,其他程序员将使用它来控制某些硬件.他们将添加对我们的DLL的引用以进入我们的硬件框架.我需要一个可以从多个应用程序(进程)访问的共享类.

单例模式似乎是我需要的,但它只适用于进程内的多个线程.我可能完全错了,但这是我目前拥有的C#代码的一个例子.我不禁觉得设计不正确.我希望我可以分享更具体的信息,但我不能.

  • 我必须强调,我无法控制客户申请.解决方案必须包含在框架(DLL)本身内.

框架:(共享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)

c# dll singleton frameworks shared-libraries

12
推荐指数
2
解决办法
1万
查看次数

ViewBag- MVC3-ASP.NET

我想在控制器中为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)

以前有人有这个吗?

asp.net-mvc-3

8
推荐指数
2
解决办法
8899
查看次数

在C#中检测网络状态(已连接 - 已断开连接)

我需要一段代码来检测网络连接是连接还是断开连接.连接状态意味着电缆已插入以太网连接.断开状态意味着没有连接电缆.

由于我在Windows CE上运行,我无法使用WMI界面.我不介意调用Win32 API,但请记住我正在使用Windows CE并在Compact Framework上运行.

c# networking ethernet compact-framework windows-ce

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

如何获取.NET Compact Framework中所有已加载程序集(引用)的编程列表

我在Windows CE上运行并使用Compact Framework.我需要获取我的应用程序已加载的所有引用程序集的列表.能够访问这些程序集的AssemblyName(对象)会很高兴.

一个例子就像通过执行以下操作来获取正在运行的程序集:Assembly.GetExecutingAssembly(); 除了我需要获得所有其他加载程序集(第三方Dll)的引用.

完整框架具有Assembly.GetExecutingAssembly().GetReferencedAssemblies()方法,但它在Compact Framework上不可用.任何帮助,将不胜感激.

.net c# assemblies compact-framework windows-ce

5
推荐指数
1
解决办法
4736
查看次数

MVC 4模板与自定义成员资格提供程序

我想要做的是使用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

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

如何测试使用DbEntityValidationException的Exception扩展方法?

我希望我只是在看一些非常简单的东西……

由于我没有访问我的个人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)

c# entity-framework

5
推荐指数
1
解决办法
820
查看次数

什么是PCALL或Wowwiki错了?

这是一个魔兽世界(魔兽世界)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)

lua world-of-warcraft

2
推荐指数
1
解决办法
2023
查看次数