0

我尝试获取给定类名示例的完整命名空间路径,例如输入类名 =“ABC”

位于 AB 命名空间的 ABC 类

我需要像 ABABC 这样的完整路径

我的输入类型传入字符串,如类名而不是类型

类型 t= Type.GetType("ABAC"); 在职的

类型 t= Type.GetType("ABC"); 不工作

如何在 ABC 上找到 ABABC

代码 :

 public partial class UcDataGridView : DataGridView
{
    private string _ClassFullName = "UcDataGridView";

    [Browsable(true), Category("Misc")]
    public string ClassFullName
    {
        get
        { return _ClassFullName; }
        set
        {
            _ClassFullName = value;
            if (!string.IsNullOrEmpty(_ClassFullName))
            {
                ClassType = Type.GetType(_ClassFullName);

                if (ClassType != null)
                {
                    if (ClassType.IsClass)
                    {
                        PropertyInfo[] props = ClassType.GetProperties();
                        foreach (var item in props)
                        {
                            var txtCol = new DataGridViewTextBoxColumn();
                            txtCol.Name = "C" + item.Name;
                            txtCol.HeaderText = item.Name;
                            txtCol.DataPropertyName = item.Name;
                            txtCol.ReadOnly = true;
                            this.Columns.Add(txtCol);
                        }
                    }
                    else
                        this.Columns.Clear();
                }
                else
                    this.Columns.Clear();
            }
            else
                this.Columns.Clear();
            Invalidate();
        }
    }
    private Type ClassType { get; set; }

    public UcDataGridView()
    {
        InitializeComponent();
    }

}
4

4 回答 4

3

这可以通过

typeof(ABC).FullName
于 2013-07-16T08:34:10.933 回答
0

您可以使用 Linq 扫描程序集以查找具有相同名称的类:

ClassType = Assembly.GetAssembly(typeof(UcDataGridView)).GetTypes().FirstOrDefault(t => t.Name == _ClassFullName);

您必须确定UcDataGridView在同一个程序集中不会出现多次。

于 2013-07-16T08:52:11.070 回答
0
string fullPathName= typeof(className).AssemblyQualifiedName;
于 2013-07-16T08:33:51.317 回答
0
typeof(_Default).UnderlyingSystemType
于 2013-07-16T08:45:06.390 回答