如何查找数据源的类型

本文关键字:数据源 类型 查找 何查找 | 更新日期: 2023-09-27 18:25:12

我正在尝试调试以下代码行

binding.DataSource = this.bindingSource.DataSource;

并希望了解有关绑定的更多信息。数据源

在直接窗口中查询?结合DataSource返回

Count = 1
[0]: {Contact Events}

我想铸造绑定。我可以用intellisense查询的数据源?我应该把它投射到什么?

[更新]绑定源的创建方式如下:;

public BindingSource GetEventTypesBindingSource()
    {
        try
        {
          DbSet<ContactEventType> dset = base.Context.ContactEventTypes;
          IOrderedQueryable<ContactEventType> qry = dset.Where(p => p.Id > 0).OrderBy(x => x.Description);
            qry.Load();
            var bindingSource = new BindingSource();
            bindingSource.DataSource = dset.Local.ToBindingList();
            return bindingSource;
        }
        catch (Exception ex)
        {
            HandleException.Show(ex);
        }
        return null;
    }

[更新]我在调试器中尝试了以下操作

? (List<ContactEvent>) binding.DataSource.GetType() 

但是得到

The type or namespace name 'List' is not valid in this scope

如何查找数据源的类型

它可能是List<ContactEvent>,但您可以使用调试器和/或反射找到它。

如果在调试器的"监视"窗口中查看变量,它将显示数据的类型。如果对数据源调用GetType,它将返回对象的类型(您也可以在调试器中执行此操作,并在那里检查生成的类型)。

首先它与答案无关,但在这种情况下不必使用datasource(您不使用datamember属性)。您可以直接将其绑定到集合。集合的类型可以是来自实体框架程序集的自定义绑定列表实现。也许你看不到它的名字,因为它不是公开的,但选角到IEnumerable应该有效。如果我没记错的话,自定义实现是从BindingList派生的,那么BindingList也可以