问题标签 [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 回答
310 浏览

c# - 在运行时添加 TypeConverterAttribute 不会导致正确的 TypeConverter

出于序列化/反序列化的目的,我想为位于外部编译程序集中的类型设置一个 TypeConverter。

我偶然发现了这个问题,但提供的解决方案似乎对我不起作用: Add TypeConverter attribute to enum in runtime

打电话

按预期返回属性,但调用

不返回先前添加的转换器,而只返回 TypeConverter 基类。

0 投票
1 回答
115 浏览

c# - Combobox 使用 TypeConverter 而不是 toString C#

我有一个自定义的类TypeDescriptor来保存和恢复数据。在我的应用程序中,我使用 aComboBox来选择此类的对象。要将对象绑定到ComboBoxi使用DataSource.ComboBox

TypeDescriptor在我为我的类创建自定义后,ComboBox使用TypeDescriptor来显示我的类Text的方法而不是ToString方法。

如何更改ComboBox以使用ToString方法而不是TypeDescriptor

0 投票
1 回答
722 浏览

c# - 自定义本地化 BooleanConverter

我正在尝试实现本地化的 BooleanConverter。到目前为止一切正常,但是当您双击该属性时,将显示下一条消息:

“'System.String' 类型的对象无法转换为 'System.Boolean' 类型。”

我想问题出在具有该布尔属性的 TypeConverter 的 CreateInstance 方法中。

0 投票
3 回答
370 浏览

c# - PCL 中的 TypeDescriptor 替换

TypeDescriptor.GetConverter(Type)一种非常方便的方式来序列化/反序列化大量内置数据类型到/从字符串:

不幸的是,TypeDescriptor在可移植类库中不可用。

是否有规范的替代品,还是我们必须回到巨大的 switch 语句?

0 投票
0 回答
414 浏览

c# - 我怎么知道我是否不能使用 TypeConverter.ConvertFromInvariantString 将字符串转换为对象

我正在使用TypeConverter.ConvertFromInvariantString为了将字符串转换为具体类型。

一些转换通过异常失败,我想在尝试转换之前了解失败。

将失败的代码示例:

我不想拥有的代码:

我不想使用 try\catch 块作为解决方案,因为我不想在操作之前获取属性列表。

我注意到该CanConvertFrom方法实际上不起作用(在TypeConverter.ConvertFromInvariantString方法成功时将浮点数转换为双精度时返回 false)。

那么,有没有办法确定我是否可以在转换之前将字符串转换为类型?

0 投票
0 回答
299 浏览

c# - 设置只读属性在设置为布尔值时有效,但在由布尔变量分配时无效

我已经从代码项目中获取了代码set。我试图使属性Phone只读,如果QRType不等于ContactPhone(QRType 是一个枚举):

上面的代码不能正常工作,电话字段总是灰显,同时设置如下值:

两者都正常工作。它有什么问题?

更新: 有趣的是,不使用&&它可以工作:

0 投票
1 回答
298 浏览

c# - 试图让 TypeDescriptor.GetProperties 工作

真正开始 C#。我正在尝试实现 TypeDescriptor.GetProperties。在代码中,我不断得到一个空集合。我不知道为什么。

任何帮助表示赞赏。谢谢。

0 投票
1 回答
1555 浏览

c# - 获取按自定义属性过滤的 PropertyDescriptorCollection

我需要获得PropertyDescriptorCollection所有用自定义属性装饰的属性。问题是TypeDescriptor.GetProperties只能通过所有属性的属性的精确匹配进行过滤,所以如果我想获得所有属性,无论属性的属性如何设置,我都必须涵盖过滤器数组中的所有可能性。

这是我的属性的代码:

还有一个具有装饰属性的类:

主要:

到目前为止,我使它工作的唯一方法是第三次尝试,不知道是否有更直观和优雅的方法。

输出如下:

在此处输入图像描述

如您所见,我只能通过最后一次尝试获得这两个属性。

0 投票
2 回答
1138 浏览

c# - 如何序列化运行时将“属性”添加到 Json

我实现了在运行时将“属性”添加到具有特殊 SystemComponent.PropertyDescriptor-s 的对象的可能性。

由于这些属性只能通过 ComponentModel.TypeDescriptor 而不是通过反射访问,因此这些属性在 WPF 环境中运行良好,但不适用于序列化。

这是因为我知道的所有 JSON 序列化程序都对类型使用反射。我分析了Newtonsoft.Json、System.Json、System.Web.Script.JavaScriptSerializer、System.Runtime.Serialization.Json。

我认为我不能使用这些序列化程序中的任何一个,因为它们都不允许修改实例上的属性的检索(例如,无法使用 ContractResolver)。

有什么方法可以使 JSON 序列化与这些序列化程序之一一起工作?也许通过特殊配置,覆盖序列化器或类似方法上的某些方法?是否有其他可用的序列化程序可以满足此要求?

背景:

运行时属性的想法基于此博客条目

序列化要求来自使用 dotNetify 序列化视图模型以将它们发送到客户端。

目前,我制作了一个 dotnetify 的分支,并通过使用 Newtonsoft.Json 和递归助手进行部分序列化来临时解决序列化问题。(如果对它感兴趣,可以查看差异:Fork)。

0 投票
0 回答
288 浏览

.net - 按属性实例过滤的 TypeDescriptor.GetProperties 不能与实现 ICustomTypeDescriptor 的对象一起正常工作

假设我们有两个类AB。类A具有一些可浏览和不可浏览的属性,类B是从接口派生A并实现ICustomTypeDescriptor的(只需通过调用作为参数传递的TypeDescriptor方法)。这是代码:truenoCustomTypeDesc

现在让我们看看 TypeDescriptor.GetProperties 为这些类的实例返回什么:

请注意noCustomTypeDesc=true在这里是故意的。这只是演示了它在实现内部的样子ICustomTypeDescriptor,在其中使用相同的参数调用它。奇怪的是,这会导致以下输出:

为什么?