通用会员提供商的源代码是否可用?该项目是开源的吗?更清楚的是,我在谈论Nuget提供的System.Web.Providers.dll:(http://nuget.org/packages/Microsoft.AspNet.Providers/)
该DLL似乎不是Codeplex上托管的ASP.NET源代码的一部分.但也许它可以从其他地方获得?
我们在序列化对象时使用属性级 NullValueHandling 来忽略空值:
[Newtonsoft.Json.JsonProperty("Topic", NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public string Topic { get; set; }
Run Code Online (Sandbox Code Playgroud)
现在事实证明,在一种情况下,我们应该序列化每个属性,即使它们具有 NullValueHandling.Ignore 并且属性值为 null。
使用 Json.NET 序列化对象时是否可以覆盖属性级 NullValueHandling-rules?
情况:我有一个List<IQueryable<MyDataStructure>>.我想并行地对它们中的每一个运行一个linq查询,然后加入结果.
问题:如何创建我可以作为参数传递的linq查询?
示例代码:
这是一些简化的代码.首先,我有以下集合IQueryable<string>:
public List<IQueryable<string>> GetQueries()
{
var set1 = (new List<string> { "hello", "hey" }).AsQueryable();
var set2 = (new List<string> { "cat", "dog", "house" }).AsQueryable();
var set3 = (new List<string> { "cat", "dog", "house" }).AsQueryable();
var set4 = (new List<string> { "hello", "hey" }).AsQueryable();
var sets = new List<IQueryable<string>> { set1, set2, set3, set4 };
return sets;
}
Run Code Online (Sandbox Code Playgroud)
我想找到所有以字母"h"开头的单词.只需一个,IQueryable<string>这很容易:
query.Where(x => x.StartsWith("h")).ToList()
Run Code Online (Sandbox Code Playgroud)
但我希望对所有IQueryable<string>对象并行运行相同的查询,然后合并结果.这是一种方法:
var result = new ConcurrentBag<string>(); …Run Code Online (Sandbox Code Playgroud) 我们的后端正在收集原始数据并将其推送到Azure存储队列.我们想对每个排队的消息做两件事:
为了保持小而清晰,我们希望有两个指向同一队列的WebJob函数:
public static void ArchiveRawData([QueueTrigger("raw")] RawData data, [Blob("{Ticks}.dat")] out string raw)
{
raw = data.Data;
}
public static void ParseRawData([QueueTrigger("raw")] RawData data, [Queue("result")] out Parsed parsedData
{
var parsed = Parser.Parse(data.Data);
parsedData = parsed;
}
Run Code Online (Sandbox Code Playgroud)
但是,这并不工作:无论是在ArchiveRawData或ParseRawData得到消息,而不是其他.
是否有一个选项可以使上述场景有效?现在看来消息在第一个函数完成后自动出列(无论哪一个).但我认为WebJobs SDK可以检测到具有相同QueueTrigger的多个函数,并且只有在所有函数完成后才能使消息出列.
为了解决这个问题,我们目前在一个函数中有两个输出:
public static void ParseRawData([QueueTrigger("raw")] RawData data, [Queue("result")] out Parsed parsedData, [Blob("{Ticks}.dat")] out string raw)
{
var parsed = Parser.Parse(data.Data);
parsedData = parsed;
raw = data.Data;
} …Run Code Online (Sandbox Code Playgroud) 我有一个用户控件,datacontext设置为视图模型.用户控件包含一些绑定到视图模型属性的文本块和文本框.当视图模型的属性值发生变化时,我想做一个小动画,但我似乎无法在Silverlight中找到一种方法.
在WPF中,我们可以使用NotifyOnTargetUpdated和Binding.TargetUpdated等属性来捕获更改,但Silverlight似乎缺少这些属性.在我的情况下,动画不是基于属性的值,这意味着当某个属性的值是例如5时我不想启动动画.相反,每次更改属性的值时都应该启动动画(突出显示已更改的用户的内容).
以下是如何在WPF中执行此操作的答案:绑定更新时动画WPF文本,如何?
但是我如何才能对Silverlight 4做同样的事情呢?
这是一些简单的代码:
static void Main(string[] args)
{
var coll = new List<string> {"test", "test2", "test3"};
var filteredColl = coll.Select(x => x).ToList();
if (!filteredColl.Any())
{
DateTime? date = new DateTime();
filteredColl = coll.Where(x => date.GetValueOrDefault().Date.ToString(CultureInfo.InvariantCulture) == x).Select(x => x).ToList();
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,为什么以下步骤使其与NullReferenceException崩溃:
1)断点到if

2)设置下一个执行点:

3)尝试继续使用F10:

如果我注释掉代码的最后一行,它就不会崩溃.
更新:这是堆栈跟踪:
System.NullReferenceException was unhandled HResult=-2147467261
Message=Object reference not set to an instance of an object.
Source=ConsoleApplication28 StackTrace:
at ConsoleApplication28.Program.Main(String[] args) in Program.cs: line 21
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, …Run Code Online (Sandbox Code Playgroud) 我没有让Aurelia(CLI)和TypeScript与MomentJS一起工作.我见过Aurelia和Moment问题的解决方案,但他们没有使用Aurelia CLI.
这就是我现在正在做的事情:
使用Aurelia CLI的新Aurelia项目:
au new
Run Code Online (Sandbox Code Playgroud)
我选择TypeScript而不是Babel.
安装时刻
npm install moment --save
Run Code Online (Sandbox Code Playgroud)
这将安装Moment 2.4.1.我可以从node_modules找到它(包括moment.d.ts).
编辑aurelia.json
我将"时刻"添加到"依赖":
在app.ts中使用Moment
我现在尝试在app.ts中导入Moment时出现问题.
import { moment } from 'moment';
Run Code Online (Sandbox Code Playgroud)
这给出了错误:"模块"o:/ dev/spikes/amoment/node_modules/moment/moment"没有导出成员'时刻'
更改外壳可修复此错误:
import { Moment } from 'moment';
Run Code Online (Sandbox Code Playgroud)
但在这一点上,我完全陷入困境.当试图使用时刻(或时刻)时,我总是会收到错误"找不到名字'时刻'.这是当前app.ts给出的"找不到名字'时刻'" - 错误:
import { Moment } from 'moment';
export class App {
message = 'Hello World!';
hello() : string {
return moment.format();
}
}
Run Code Online (Sandbox Code Playgroud)
导入似乎是问题所在.任何想法如何解决这个问题?
更新
修复app.ts看起来如下所示,现在编译的东西.但它在运行时给出了"TypeError:无法读取未定义的属性'格式".
import { Moment } from 'moment';
import { autoinject } from "aurelia-framework";
export class App {
message: string; …Run Code Online (Sandbox Code Playgroud) MongoDB 2.4增加了一个新的"更新后限制数组中的元素数量"功能.这是如何通过shell使用它:
db.students.update(
{ _id: 1 },
{ $push:
{ scores:
{ $each :
[
{ attempt: 3, score: 7 },
{ attempt: 4, score: 4 }
],
$sort: { score: 1 },
$slice: -3
}
}
}
)
Run Code Online (Sandbox Code Playgroud)
如何使用MongoDB的C#-driver完成这项工作?
c# ×4
asp.net ×2
aurelia ×1
aurelia-cli ×1
azure-queues ×1
data-binding ×1
json.net ×1
linq ×1
momentjs ×1
mongodb ×1
nullable ×1
silverlight ×1
typescript ×1