c# - 从包含通用 O​​bservableCollection 的类型 (System.type) 中获取字符串 "System.Collections.ObjectModel.ObservableCollection"?

标签 c# observablecollection

我得到了一个类型,其全名是(如果有帮助的话):

"System.Collections.ObjectModel.ObservableCollection`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"

从该类型中,我想将 "System.Collections.ObjectModel.ObservableCollection" 作为字符串获取,但我想“干净地”进行,这意味着不拆分带有 char '`' 的字符串。 我认为策略是获得类似 Type 或 FullName 为 "System.Collections.ObjectModel.ObservableCollection" 的东西,但我真的做不到:/

最佳答案

“真正的”类型名称不是 System.Collections.ObjectModel.ObservableCollection,而是 System.Collections.ObjectModel.ObservableCollection`1,正如 VirtualBlackFox 正确提到的(因为是泛型,`1表示泛型参数个数)。

您可以使用 type.Name(提供 ObservableCollection`1)和 type.Namespace(提供 System .Collections.ObjectModel).

并不是说您的类型很可能不是泛型类型,而是它的泛型参数规范 = string

您可以使用 type.GetGenericArguments() 获取参数类型(在您的情况下为 string) .

关于c# - 从包含通用 O​​bservableCollection 的类型 (System.type) 中获取字符串 "System.Collections.ObjectModel.ObservableCollection"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8339271/

相关文章:

c# - BinaryFormatter 在 C# 中反序列化时找不到 'Assembly'

c# - 如何复制此在线工具使用的 AES 加密

c# - 如何从表中逐 block 获取数据?

performance - C# HashSet<T> 搜索性能(与 ObservableCollection<T> 相比)?

c# - 使用 Mailkit 获取收件箱更改通知

c# - 如何解决 "Newtonsoft.Json.JsonSerializationException unable to find constructor to use for types"Android 错误?

wpf - 如何强制ItemsControl验证行更改?

wpf - 无法在多线程中操作ObservableCollection

c# - ObservableCollection 和 ListBoxItem DataTemplate 生成问题

c# - 如何识别 List<T> 中对象的哪些属性发生了变化