如何做到:從system.string到type的轉化?

smile9961 2006-02-10 09:37:04
比如:
test是個已經存在類型
dim strClassName as string="test"
dim iType as type

如何使itype的類型為test?

...全文
186 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
smile9961 2006-02-10
  • 打赏
  • 举报
回复

Dim t As Type = Me.GetType.BaseType
smile9961 2006-02-10
  • 打赏
  • 举报
回复
to:lidong6(立冬)

test.aspx(class名是test)為專案myProject的一個webform,
所以test也是一個類型(myProject.test)
lidong6 2006-02-10
  • 打赏
  • 举报
回复
test只是一个值 又不是一个TYPE,如果你要取得"test"的类型可以使用
strClassName.GetType();
54zyq 2006-02-10
  • 打赏
  • 举报
回复
Type t = typeof(Me.GetType.FullName)
这样行不行,没试过
njuzgj 2006-02-10
  • 打赏
  • 举报
回复
UP
smile9961 2006-02-10
  • 打赏
  • 举报
回复
我剛在test.vb中作了一個測試:
Dim t As System.Type = Type.GetType(Me.GetType.FullName)
其中Me.GetType.FullName=“asp.test_aspx”;
但是得到的t卻為nothing,不知道是哪裏也錯了?
alesso 2006-02-10
  • 打赏
  • 举报
回复
Type.GetType(".....")
luoyi107 2006-02-10
  • 打赏
  • 举报
回复
学习。。。。
smile9961 2006-02-10
  • 打赏
  • 举报
回复
是這樣的sp1234,比如我一個WebForm(名為test.aspx)包含兩個用戶控件(A,B),其中A又是動態的,可能為x.ascx, y.ascx

比如在B中需要訪問A的一個textbox,那麽需要
dim a =ctype(me.parent.Findcontrol("Ax"),xxxxxxx)
dim ctrl as textbox=ctype(a.Findcontrol("ctrl"),textbox)

這裡的xxxxxxx為動態用戶控件的類型...

但是我發現,即便知道了xxxxxxx的類型也還是無法轉換:

dim itype as type=me.parent.findcontrol("Ax"),ClassAx).gettype.basetype
dim a =ctype(me.parent.Findcontrol("Ax"),itype) '這句還是通不過,提示:itype未定義。
dim ctrl as textbox=ctype(a.Findcontrol("ctrl"),textbox)
smile9961 2006-02-10
  • 打赏
  • 举报
回复
是這樣的sp1234,比如我一個WebForm(名為test.aspx)包含兩個用戶控件(A,B),其中A又是動態的,可能為x.ascx, y.ascx

比如在B中需要訪問A的一個textbox,那麽需要
dim a =ctype(me.parent.Findcontrol("uaid"),xxxxxxx)
dim ctrl as textbox=ctype(a.Findcontrol("ctrl"),textbox)

這裡的xxxxxxx為動態用戶控件的類型...

但是我發現,即便知道了xxxxxxx的
類型(dim itype as type=me.parent.findcontrol('Ax'),ClassAx).gettype.basetype)
也還是無法轉換:dim a =ctype(me.parent.Findcontrol("uaid"),itype )這句還是通不過,提示:itype未定義。


smile9961 2006-02-10
  • 打赏
  • 举报
回复
to sp1234:

這兩句等效:
Dim x As Type = Me.GetType.BaseType
Dim y As Type = Type.GetType("myProject.test")

之前沒有找到,就是因爲fullName不對。

  • 打赏
  • 举报
回复
不过,既然本身就是在test类内,何必要反射来创建自己。我就当你在做试验。
  • 打赏
  • 举报
回复
test.aspx不在System命名空间里定义。asp.net把它另外(临时)编译在一个dll里,并且其名称空间也不是System。用System.Type的GetType(找System命名空间)方法当然找不到。

如果test内,那么你可以这样找到它:

me.gettype.assembly.gettype(Me.GetType.FullName)

大概可能可以。如果不可以,也是fullname的问题。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧