小编Y.S*_*Y.S的帖子

替换char OnKeyPress

我有一个textarea输入元素,

如果用户键入"@",我想用@ [someTextHere]替换它.

我正在使用JQuery的按键事件,但我没能得到我想要的东西,我不断在字符串的末尾加上"@",即[someTextHere] @.

可能吗?

我的代码:

<html>
    <head>
        <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
    </head>

    <body>
        <textarea id="post-txt"></textarea>
    </body>
</html>

<script>
    $('#post-txt').keypress(function(event){
        var str = $('#post-txt').val(); 

        if(String.fromCharCode(event.which) == '@'){
            $('#post-txt').val(str.substring(0,str.length) + '[TEXT]'); 
            }
    })  
</script>
Run Code Online (Sandbox Code Playgroud)

将不胜感激.

javascript jquery keypress

8
推荐指数
1
解决办法
7442
查看次数

如何从Web API中的HttpResponseMessage获取异常?

我正在尝试在Web API中实现自定义错误处理,并且需要从返回的HttpResponseMessage中获取异常。

我试图通过以下方式获取异常信息:

response.Content.ReadAsAsync<HttpError>().Result
Run Code Online (Sandbox Code Playgroud)

但是我无法访问结果对象,尝试时遇到异常,因此我显然做错了。

无法弄清楚该如何做,我们将不胜感激。

编辑:

我的客户代码不相关,只是一个GET请求,服务器代码:

控制器动作引发异常:

if (condition == true)
{
    var response = new HttpResponseMessage(HttpStatusCode.BadRequest)
    {
        Content = new StringContent("Some Exception Related Message"),
        ReasonPhrase = "Some More Info"
    };

    throw new HttpResponseException(response);
}
Run Code Online (Sandbox Code Playgroud)

我实现的DelegatingHandler的SendAsync方法获取响应,这是我想要获取在上述控制器操作中引发的异常的调用堆栈的地方。

errorDetails = new ResponseErrorDetailsFull
{
    Message = "An error has occurred.",
    ExceptionMessage = response.ReasonPhrase,
    StackTrace = response.Content.ReadAsAsync<HttpError>().Result.StackTrace 
};
Run Code Online (Sandbox Code Playgroud)

编辑#2

好的,所以我发现,如果我创建一个ExceptionFilterAttribute和Override OnException(),则在我的DelegatingHandler上使用该属性,就可以访问上面代码中提到的异常。

有人可以解释为什么这种方式起作用吗?

.net c# asp.net-web-api

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

2路SSL - 客户端证书未发送到服务器

我在force.com平台上有一个部署到salesforce的应用程序,我正在尝试为其配置双向SSL.

即我希望从SF发送到我的服务器的每个请求,将发送客户端证书.

我在SF上进行了必要的配置以便发送证书,但是我仍然从服务器获得403.7,这意味着:禁止,需要客户端证书.

我在服务器上安装了wireshark,捕获流量以查看2路ssl握手,并且我试图在服务器中找到hello消息,它告诉客户端客户端证书应该对应的可信CA,但我有难以找到它.我怀疑这就是客户端不发送证书的原因.

任何人都可以指出我在服务器的哪个方面你好吗?或者可能在另一个数据包捕获?

提前致谢.

在此输入图像描述

客户密钥交换记录:

在此输入图像描述

ssl force.com client-certificates wireshark visualforce

4
推荐指数
2
解决办法
6796
查看次数

Web API - 使用 HttpRequestMessage id 设置每个线程?

我有一个用 C# 编码的 Web api。

Web API 使用与其他内部组件共享的功能。它依赖于单线程流并使用线程本地存储来存储对象和会话信息。请不要说这是好还是坏,这就是我必须面对的。

在 Web api 中,我使用 SendAsync 实现了自定义消息处理程序 (DelagatingHandler)

protected async override System.Threading.Tasks.Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
Run Code Online (Sandbox Code Playgroud)

它基于 TPL,有时会切换线程,当发生这种情况时,我基于线程的功能会变得混乱,因为我丢失了线程上下文和分配给它的所有数据。

我的想法是唯一标识 HttpRequestMessage,我认为使用相关 id 应该足够了

var requestId = request.GetCorrelationId();
Run Code Online (Sandbox Code Playgroud)

但我想存储任务中分配的每个线程的 HttpRequestMessage 的相关 ID。

所以我的问题基本上是我是否可以识别在特定任务下分配的线程并为其分配 id?

.net c# multithreading task-parallel-library asp.net-web-api

4
推荐指数
1
解决办法
3134
查看次数

log4net中的方法名称C#

我为log4net创建了ac #wrapper.

它有Debug()和Error()方法.

我想记录记录记录的方法名称,但是如果我尝试使用%方法转换模式,它只打印Debug,它是包装器方法名称.

有没有办法打印完整的方法堆栈?

例如

而不是Debug - > SomeLoggingActionInSomeClass.Debug?

包装类代码:

public static class Logger
{
    private static ILog _log;

    static Logger()
    {
        log4net.Config.XmlConfigurator.Configure();

        _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
    }

    public static void Init()
    {
    }

    public static void Debug(string message)
    {
        _log.Debug(message);
    }
Run Code Online (Sandbox Code Playgroud)

调用类代码:

W6CustomizationLogger.Logger.Debug("Backup(): START");
Run Code Online (Sandbox Code Playgroud)

.net c# log4net

4
推荐指数
1
解决办法
6046
查看次数

防止实现不是接口方法的方法

是否有可能阻止在实现接口的类中实现公共非接口方法?

例如

    public interface ICanDoSomething
    {
        void CanDoA();

        void CanDoB();
    }

    public class Doer : ICanDoSomething
    {
        public void CanDoA()
        {
            //Do A
        }

        public void CanDoB()
        {
            //Do B
        }

        public void CanDoC()
        {
            //Don't do this!!! it's not defined in the interface!!!
        }
    }
Run Code Online (Sandbox Code Playgroud)

只是为了澄清,我想在编译时阻止它,而不是在运行时.

.net c# interface

3
推荐指数
1
解决办法
836
查看次数

扩展现有接口设计

我有几个实现一些接口的类,而不是修改它,我想用另一个接口扩展它.

当我在考虑设计扩展接口时,我不确定如何包含对原始接口的引用的最佳实践是什么?

Id引用或将其作为扩展接口的属性包含在内?

我在下面创建了一个示例来说明需要:

public interface IMovie
{
    string UniqueId { get; set; }

    string Name { get; set; }

    string Ratnig { get; set; }
}

//Option #1
public interface IMovieWithSubTitles
{
    string UniqueId { get; set; }

    string SubTitles { get; set; }
}

//Option #2
public interface IMovieWithSubTitles
{
    IMovie Movie { get; set; }

    string SubTitles { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

.net c# interface

0
推荐指数
1
解决办法
42
查看次数

为什么Dictionary对象中没有Update()函数?

我使用Dictionary对象非常多,总是需要添加/删除/更新项目.

我想知道为什么没有内置Update()的Dictionary函数,甚至不作为LINQ扩展(与线程安全,锁,其他相关.例如UpdateSafe()或类似)

该ConcurrentDictionary对象有AddOrUpdate().

注意:我正在寻找之前的SO帖子,解释了这个概念,但没有找到.

回答或参考解释概念的帖子将不胜感激.

.net c# dictionary

-1
推荐指数
1
解决办法
48
查看次数