问题标签 [typedescriptor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1012 浏览

c++ - 指向成员、类型描述符和引用的指针

我正在研究 C++11 中的类型描述符项目。类型描述符的工作是了解类中每个成员的类型、它的大小以及它与对象基础的偏移量。我不支持多重继承以及具有虚拟方法的对象,所以我现在让它变得更简单。目标是能够使用描述符序列化和反序列化对象。

请注意,这是一个宠物项目,用于处理可变参数模板、指向成员的指针和我不熟悉的 C++ 的其他功能等功能,因此无需将我指向 boost::archiving 之类的东西。:)

我实际注册成员的方式与 boost::python::class_ 的方式非常相似。

不幸的是,C++ 的指针指向成员特性不能与 C++ 中的引用一起使用,正如我本周早些时候了解到的那样:https ://stackoverflow.com/a/8336479/1074536 ,所以我不能以 &Foo::refToAndInt 为例。

至于我如何计算成员的偏移量,我没有使用宏的偏移量,因为我的类并不总是 POD。

因此,由于我不能使用指向成员的指针来计算引用的偏移量,所以我想我会尝试:

但是否已在另一个堆栈溢出线程中指出,这是未定义的行为,显然在 LLVM 上它会崩溃。:(

我想避免做一些事情,比如获取前一个成员的偏移量,添加它的大小,然后以某种方式计算对齐我的下一个成员所需的填充,因为它看起来很混乱并且容易出错

所以,我不能同时使用这两种技巧,并且 offsetof 仅适用于 POD。除了我的其他可怕建议之外,关于我下一步可以尝试什么的任何建议?

谢谢!

0 投票
2 回答
721 浏览

c# - 派生类无法使用 PropertyDescriptorCollection.SetValue 访问受保护的设置器

我已经在我的基类中设置了我的一个属性来拥有一个受保护的设置器。这工作正常,我可以在派生类的构造函数中设置属性 - 但是当我尝试使用 PropertyDescriptorCollection 设置此属性时,它不会设置,但是使用该集合适用于所有其他属性。

我应该提到,当我删除受保护的访问修饰符时,一切正常......但当然现在它不受保护。感谢您的任何意见。

0 投票
2 回答
2786 浏览

c# - 类型描述符性能

我创建了一个简单的方法来返回一个属性,我知道它是来自对象属性层次结构的字符串。例如,对象“contract”,属性为“Person”,子属性为“Contact”,子属性(已知为字符串)“PhoneNumber”

我打算将该方法用于特定的动态绑定目的。

调用该方法如下所示: GetProperty(contract, "Person.Contact.PhoneNumber");

我想知道以下代码对性能的影响是什么:

谢谢!

0 投票
1 回答
1494 浏览

c# - TypeDescriptor.AddAttributes 和属性

这样的事情可能吗?

有一个具有 [DataContract] 属性的类。这个类有两个属性,一个是int,另一个是string。这个类有两个不同的实例。

是否可以将 [DataMember] 属性动态分配给第一个实例的 int 属性,并且只分配给第二个实例的 string 属性?如果是这样,您介意提供一个片段吗?

0 投票
0 回答
1441 浏览

c# - System.Component.TypeDescriptor 中的死锁

我花了很多时间(谷歌搜索、反映 .net 二进制文件等)试图解决以下问题:

我在我们的应用程序(ASP.NET MVC + EF4)中看到了死锁。我们有几个 EF 的上下文,它们在请求开始时创建并在最后被处理掉。有时我们会遇到以下情况:ASP.NET 为每个请求创建一个线程,然后线程在访问 EF 上下文时进入“in join or sleep”状态。

大多数死锁线程都有如下堆栈跟踪:

这个问题是否与不正确的实体框架上下文使用有关?感谢帮助。

0 投票
0 回答
901 浏览

.net - 如何在类属性中使用 TypeDescriptor.GetProperties 获取具有自定义属性的属性?

这个问题一样,我想使用 TypeDescriptor 来获取一些属性 - 但与那个问题不同,我只想获取添加了我的自定义属性的属性。

这是一个类属性,所以我想获取类中具有自定义属性的属性。

到目前为止我所拥有的

...始终返回所有属性,而不仅仅是具有我的自定义属性属性 (AtLeastOneValueRequiredAttribute) 的属性。

这是我将其应用于的课程:

0 投票
1 回答
2002 浏览

c# - 在运行时在对象上添加属性没有发生

我尝试在某个对象上添加属性。这个对象可以是 int、string、List 或其他。

我尝试使用

TypeDescriptor.AddAttributes(object, attrList.ToArray());

但是当我这样做时,这个属性列表不会显示:

object.GetType().GetCustomAttributes(false)

怎么会?

最好的祝福,

加布里埃尔·保尔森

0 投票
3 回答
558 浏览

c# - 反射中循环的任何 LINQ 替代方案?

我有一个带有字段+属性的类型 T,我想从字典中填充它,不区分大小写

我显然可以

接着

希望有更好的方法,也许使用 LINQ ?

0 投票
2 回答
2999 浏览

c# - 获取 PropertyInfo 名称和值

我已经看到了执行此操作的各种方法,包括反射、组件模型类型描述符、表达式树和方面,但我仍然不确定下面的代码是否使用 .Net 4.0 或更高版本实现了以下所有目标:

  1. 类型安全、重构友好(没有魔法字符串)和可读性
  2. 最大化多个调用的性能
  3. 提供属性的名称
  4. 提供财产的价值

如何改进代码?

0 投票
3 回答
11043 浏览

c# - C# 转换为 double 返回无穷大

我有一个方法:

该方法位于变量value定义为的类中dynamic

像这样使用时:

value最终成为Infinity. 如果我单步执行这个过程,我会发现 的值number不是Infinity,而是用科学计数法表示的结果。number每当被转换并存储在里面时,就会发生一些不好的事情value。有谁知道为什么number持有正确的价值,但value不知道?

编辑:

这是一个完整的代码示例:

主要的:

班级: