由于某种原因,最近我的vs代码进行了更改,并开始仅使用Lerna软件包从子软件包级别提供绝对导入,例如:
如您所见,自动导入将建议@package/server/src/database文件的路径,因为它正好是../database要编辑的文件位于同一软件包中,并且位于文件下面的一个文件夹中,该文件夹包含我要使用的数据库变量。
这是错误还是配置问题?
我已经将Import Module Specifiervs-code中TypeScript的设置设置为所有三个选项(自动,相对和绝对),它们似乎没有任何区别。
我正在使用WebAPI v2.2,我正在使用[FromBody]属性将WebAPI反序列化到对象上.反序列化的目标类在内部方法上有一个[OnDeserialized]属性,如下所示:
[OnDeserialized]
internal void OnDeserialisedMethod(StreamingContext context) {
// my method code
}
Run Code Online (Sandbox Code Playgroud)
我知道这个方法中的代码存在问题,我已经逐步完成并找到了它.对我来说问题是我完全没有例外.发生的事情是这个方法被跳出来,异常似乎被忽略了.我的控制器操作被调用,我的目标对象未正确填充,因为此序列化方法未正确执行.
我的问题是; 如何捕获WebAPI中反序列化期间发生的异常?
我已经看过如何在JSON序列化期间删除$ id但是给出的答案对我来说似乎没有用,我希望有人能弄清楚我做错了什么.
这是我的代码:
return JsonConvert.SerializeObject(target, new JsonSerializerSettings {
NullValueHandling = NullValueHandling.Include,
PreserveReferencesHandling = PreserveReferencesHandling.None,
ContractResolver = new CustomContractResolver(),
Converters = CustomConverters
});
Run Code Online (Sandbox Code Playgroud)
这个输出仍然以$ id出现,但仅限于Entity Framework对象,这是设计的吗?如果是这样,有没有办法阻止Entity Framework对象上的那些$ id?
我编写了一个自定义 IQueryProvider 类,该类接受一个表达式并针对 SQL 数据库对其进行分析(我知道我可以使用 Linq2Sql,但我需要进行一些修改和调整,不幸的是,Linq2Sql 不适合)。该类将识别并使用标记的属性(使用属性)执行某些操作,但我希望能够将表达式传递给 LinqToObject 提供程序并允许它在之后过滤结果。
例如,假设我有以下 linq 表达式:
var parents=Context.Parents
.Where(parent=>parent.Name.Contains("T") && parent.Age>18);
Run Code Online (Sandbox Code Playgroud)
Parents 类是一个自定义类,实现了 IQueryProvider 和 IQueryable 接口,但是只有 Age 属性被标记为检索,所以 Age 属性会被处理,但是 Name 属性因为没有标记而被忽略。处理完 Age 属性后,我想将整个表达式传递给 LinqToObjects 进行处理和过滤,但我不知道如何进行。
注意它不需要删除表达式的 Age 子句,因为即使在我处理它之后结果也是一样的,所以我总是能够将整个表达式发送到 LinqToObjects。
我已经尝试了以下代码,但似乎不起作用:
IEnumerator IEnumerable.GetEnumerator() {
if(this.expression != null && !this.isEnumerating) {
this.isEnumerating = true;
var queryable=this.ToList().AsQueryable();
var query = queryable.Provider.CreateQuery(this.expression);
return query.GetEnumerator();
}
return this;
}
Run Code Online (Sandbox Code Playgroud)
this.isEnumering 只是一个布尔标志设置以防止递归。
this.expression 包含以下内容:
{value(namespace.Parents`1[namespace.Child]).Where(parent => ((parent.Name.EndsWith("T") AndAlso parent.Name.StartsWith("M")) AndAlso (parent.Test > 0)))}
Run Code Online (Sandbox Code Playgroud)
当我逐步执行代码时,尽管将结果转换为列表,它仍然使用我的自定义类进行查询。所以我想,因为类 Parent 在表达式的开头,它仍然将查询路由回我的提供者,所以我尝试将 this.expression 设置为方法调用的 …
给定以下类别:
class Report {
public Report() {
this.Fields=new List<Field>();
}
[JsonProperty("fields")]
public IList<Field> Fields { get; private set; }
}
class Field {
[JsonProperty("identifier")]
public Guid Identfier { get;set; }
[JsonProperty("name")]
public string Name { get;set; }
}
Run Code Online (Sandbox Code Playgroud)
并设置以下测试方法:
var report = new Report();
report.Fields.Add(new Field { Identifier = new Guid("26a94eab-3d50-4330-8203-e7750abaa060"), Name = "Field 1" });
report.Fields.Add(new Field { Identifier = new Guid("852107db-b5d1-4344-9f71-7bd90b96fec0"), Name = "Field 2" });
var json = "{\"fields\":[{\"identifier\":\"852107db-b5d1-4344-9f71-7bd90b96fec0\",\"name\":\"name changed\"},{\"identifier\":\"ac424aff-22b5-4bf3-8232-031eb060f7c2\",\"name\":\"new field\"}]}";
JsonConvert.PopulateObject(json, report);
Assert.IsTrue(report.Fields.Count == 2, "The …Run Code Online (Sandbox Code Playgroud) 我有一个名为initialiseApp的操作,该操作显然可以初始化应用程序。我需要服务器提供一些信息,例如用户信息,样式以及有关所显示页面(这是一个单页面应用程序)的详细信息。我正在使用redux-sagas,我想不出一种方法来链接异步操作,以使它们按顺序发生,而不是并行发生。
在请求任何样式信息之前,我需要先调用用户信息,因为在服务器端,对用户的调用转到并检索用户,并在会话中进行了一些设置。由于目前正在并行请求样式,因此显示错误,因为尚未在服务器上设置用户。
因此,我尝试使用put.sync,但这似乎不起作用,但是到目前为止,这是我的代码(顺便说一下,我也在使用TypeScript):
private *invokeAndWaitOn(action: IAction<any>) {
const putSync = (put as any).sync; // The typings file for redux-sagas does not yet include put.sync
yield putSync(action);
}
private *invokeArrayOfActions(actions: IAction<any>[]) {
for (let action of actions) {
yield* this.invokeAndWaitOn(action);
}
}
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用,我找不到如何正确使用redux-saga的put.sync效果的任何示例。
谁能看到我在做什么错,还是有更好/正确的方法来做到这一点?
提前致谢。
c# ×4
json ×2
json.net ×2
asynchronous ×1
auto-import ×1
iqueryable ×1
javascript ×1
kendo-grid ×1
kendo-ui ×1
redux ×1
redux-saga ×1
telerik ×1
typescript ×1