问题标签 [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.
c# - 在运行时添加 TypeConverterAttribute 不会导致正确的 TypeConverter
出于序列化/反序列化的目的,我想为位于外部编译程序集中的类型设置一个 TypeConverter。
我偶然发现了这个问题,但提供的解决方案似乎对我不起作用: Add TypeConverter attribute to enum in runtime
打电话
按预期返回属性,但调用
不返回先前添加的转换器,而只返回 TypeConverter 基类。
c# - Combobox 使用 TypeConverter 而不是 toString C#
我有一个自定义的类TypeDescriptor
来保存和恢复数据。在我的应用程序中,我使用 aComboBox
来选择此类的对象。要将对象绑定到ComboBox
i使用DataSource
.ComboBox
TypeDescriptor
在我为我的类创建自定义后,ComboBox
使用TypeDescriptor
来显示我的类Text
的方法而不是ToString
方法。
如何更改ComboBox
以使用ToString
方法而不是TypeDescriptor
?
c# - 自定义本地化 BooleanConverter
我正在尝试实现本地化的 BooleanConverter。到目前为止一切正常,但是当您双击该属性时,将显示下一条消息:
“'System.String' 类型的对象无法转换为 'System.Boolean' 类型。”
我想问题出在具有该布尔属性的 TypeConverter 的 CreateInstance 方法中。
c# - PCL 中的 TypeDescriptor 替换
TypeDescriptor.GetConverter(Type)
是一种非常方便的方式来序列化/反序列化大量内置数据类型到/从字符串:
不幸的是,TypeDescriptor
在可移植类库中不可用。
是否有规范的替代品,还是我们必须回到巨大的 switch 语句?
c# - 我怎么知道我是否不能使用 TypeConverter.ConvertFromInvariantString 将字符串转换为对象
我正在使用TypeConverter.ConvertFromInvariantString
为了将字符串转换为具体类型。
一些转换通过异常失败,我想在尝试转换之前了解失败。
将失败的代码示例:
我不想拥有的代码:
我不想使用 try\catch 块作为解决方案,因为我不想在操作之前获取属性列表。
我注意到该CanConvertFrom
方法实际上不起作用(在TypeConverter.ConvertFromInvariantString
方法成功时将浮点数转换为双精度时返回 false)。
那么,有没有办法确定我是否可以在转换之前将字符串转换为类型?
c# - 设置只读属性在设置为布尔值时有效,但在由布尔变量分配时无效
我已经从代码项目中获取了代码set
。我试图使属性Phone
只读,如果QRType
不等于Contact
或Phone
(QRType 是一个枚举):
上面的代码不能正常工作,电话字段总是灰显,同时设置如下值:
两者都正常工作。它有什么问题?
更新:
有趣的是,不使用&&
它可以工作:
c# - 试图让 TypeDescriptor.GetProperties 工作
真正开始 C#。我正在尝试实现 TypeDescriptor.GetProperties。在代码中,我不断得到一个空集合。我不知道为什么。
任何帮助表示赞赏。谢谢。
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)。
.net - 按属性实例过滤的 TypeDescriptor.GetProperties 不能与实现 ICustomTypeDescriptor 的对象一起正常工作
假设我们有两个类A
和B
。类A
具有一些可浏览和不可浏览的属性,类B
是从接口派生A
并实现ICustomTypeDescriptor
的(只需通过调用作为参数传递的TypeDescriptor
方法)。这是代码:true
noCustomTypeDesc
现在让我们看看 TypeDescriptor.GetProperties 为这些类的实例返回什么:
请注意noCustomTypeDesc
=true
在这里是故意的。这只是演示了它在实现内部的样子ICustomTypeDescriptor
,在其中使用相同的参数调用它。奇怪的是,这会导致以下输出:
为什么?