小编Ami*_*ich的帖子

两个jquery选择器之间的联合

这是我的情况:

var elems = form.find(':input');
var clEditors = form.find('.cleditor').parent();

elems.css('border', '2px');
clEditors.css('border', '2px');
Run Code Online (Sandbox Code Playgroud)

无论如何,我可以防止重复,并做这样的事情:

var elems = form.find(':input').union(form.find('.cleditor').parent());
elems.css('border', '2px');
Run Code Online (Sandbox Code Playgroud)

我尝试使用选择器的多重选择:parent器,它不起作用:

var elems = form.find(':input, .cleditor:parent'); 
Run Code Online (Sandbox Code Playgroud)

jquery selector jquery-selectors

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

从web api帖子返回text\plain json响应

我在从WebApi返回'text/plain'json响应时遇到问题.
我需要返回它text/plain,默认情况下它将它返回为application/json.
我遇到的问题正是这个链接中发生的事情.这不是一个重复的帖子,因为我阅读了多个帖子,但仍然有一个小问题.

这是我的服务器代码:

public HttpResponseMessage Post()
{
       var response = GetModel();
       string jsonRes = JsonConvert.SerializeObject(response);

       var resp = new HttpResponseMessage();
       resp.Content = new StringContent(jsonRes);
       resp.Content.Headers.ContentType = new MediaTypeHeaderValue("text/plain");

       return resp;
}
Run Code Online (Sandbox Code Playgroud)

这是我得到的回应:

StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.StringContent, Headers:
{
  Content-Type: text/plain
}
Run Code Online (Sandbox Code Playgroud)

jsonRes var包含有效的JSON.
为什么内容下载为内容:System.Net.Http.StringContent

我可能在这里错过了一些小东西.

c# json asp.net-web-api

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

我该如何调用重载的扩展方法?

假设我有这个扩展方法:

public static string ToJson(this object value, JsonSerializerSettings settings)
{
    return JsonConvert.SerializeObject(value, settings);
}
Run Code Online (Sandbox Code Playgroud)

和过载:

private static readonly JsonSerializerSettings settings = GetTheSettingsSomeWay();
public static string ToJson(this object value)
{
    return ToJson(value, settings); // (1) static call
    return value.ToJson(settings); // (2) using an extension on "this"
}
Run Code Online (Sandbox Code Playgroud)

我应该作为静态调用还是作为扩展名调用重载?

c# extension-methods overloading

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

防止XmlSerializer在Deserialize上自动实例化List's

假设我有这个示例类:

public class MyClass
{
    public List<int> ListTest { get; set; }
    public string StringTest { get; set; }
    public int IntTest { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这段代码:

string xmlStr = "<MyClass><StringTest>String</StringTest></MyClass>";
XElement xml = XElement.Parse(xmlStr);
XmlSerializer ser = new XmlSerializer(typeof(MyClass));
using (XmlReader reader = xml.CreateReader())
{
    var res = ser.Deserialize(reader);
}
Run Code Online (Sandbox Code Playgroud)

完成反序列化后,其值为res:
ListTest- >清空列表,其中Count = 0(非空).
StringTest- >"String"按预期
IntTest- > 0表示期望(整数的默认值).

我想串行行事一样(default(List<T>)是空与李斯特的),而不是实例化它们.

我怎么能做到这样的事情?
顺便说一句,我必须使用XmlSerializer.

c# xmlserializer deserialization

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

为多个参数创建唯一键(缓存键)

我有一个基于 3 个参数缓存数据的方法。例如:

  1. 状态
  2. 年龄
  3. 兄弟姐妹的数量。

现在我的系统中有很多排列,它们保存在字典中:

Dictionary<string,MyObject> cache;
Run Code Online (Sandbox Code Playgroud)

字典的键是三者的串联,并通过string.format(类似这样的)完成:

public string CreateKey(eState state, int age, int numberOfSibilings)
{
    return string.format("{0}#{1}#{2}", state.ToString(), age.ToString(), numberOfSibilings.ToString());
}
Run Code Online (Sandbox Code Playgroud)

eState是一个enum(int)

CreateKey方法被调用很多次,并且是性能障碍,因为它string.format不是特别快,并且创建大量不可变字符串并不是最好的方法。

该键可以有空条目,并替换为*. 该CreateKey方法在输入可空值时处理它们并检查它们是否具有值。

我确信有更好的方法来做到这一点。由于eState是 an int,我想过用数学公式以更快的方式创建密钥,但我无法想到快速且独特的东西。

无论如何,我愿意接受您提供的任何解决方案,以尽可能快速且内存友好地创建唯一密钥。

.net c# caching

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