这是我的情况:
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) 我在从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?
我可能在这里错过了一些小东西.
假设我有这个扩展方法:
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)
我应该作为静态调用还是作为扩展名调用重载?
假设我有这个示例类:
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.
我有一个基于 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,我想过用数学公式以更快的方式创建密钥,但我无法想到快速且独特的东西。
无论如何,我愿意接受您提供的任何解决方案,以尽可能快速且内存友好地创建唯一密钥。