加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

从C#中的字符串名称获取Class对象

发布时间:2020-12-16 00:22:50 所属栏目:百科 来源:网络整理
导读:参见英文答案 Getting a System.Type from type’s partial name????????????????????????????????????7个 我正在使用C#开发移动应用程序(Monotouch,monodroid). 我有一个这个定义的类: public class TempIOAddOn : BaseIOAddOn { public TempIOAddOn () {
参见英文答案 > Getting a System.Type from type’s partial name????????????????????????????????????7个
我正在使用C#开发移动应用程序(Monotouch,monodroid).
我有一个这个定义的类:

public class TempIOAddOn : BaseIOAddOn 
{
    public TempIOAddOn ()
    {
    }
}

我使用此代码通过其字符串名称访问类的实例:

BaseIOAddOn tempIOAddOn;
            Type t= Type.GetType("TempIOAddOn" );
            tempIOAddOn  = (BaseIOAddOn)Activator.CreateInstance(t);

但是在执行之后,t为null.

我也试过下面的代码:

BaseIOAddOn tempIOAddOn;
            tempIOAddOn = (BaseIOAddOn )System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("TempIOAddOn" );

但我再次面对null. tempIOAddOn为null.

我是怎么了?

解决方法

请尝试使用 Assembly Qualified Name.如果它正在运行Xamarin,则可能需要使用完全限定名称.我对Silverlight有同样的限制.

要快速获取全名,只需引用类型并输出它:

Console.WriteLine(typeof(TempIOAddon).AssemblyQualifiedName);

编辑:这是Silverlight的Type.GetType(字符串)的MSDN文档.由于Xamarin的移动平台或多或少基于它,因此通常可以应用文档:http://msdn.microsoft.com/en-us/library/w3f99sx1%28v=vs.95%29.aspx

请注意,如果类型在当前正在执行的程序集中,您可能只需要完整的namespace.name

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读