How to create an object from a string name of class

  • Thread starter Thread starter Nguyen Xuan Hoang
  • Start date Start date
N

Nguyen Xuan Hoang

In VB6, There is CallByName function, in .NET there are Activator.CreateInstance but it requires a Type instead of a string name of type.

Function Activator.CreateInstance(Type) as Object

There is also CreateInstance(AssemblyName as string,ObjectTypeName as string) but it returns ObjectHandle instead Object.

Function Activator.CreateInstance(String,String) as HandleObject



Any body knows how to do it as VB6's CallByName function?



NXHOANG, Vietnam

(e-mail address removed)
 
is this what you are looking for?

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vblr7/html/
vafctCallByNameFunction.asp



In VB6, There is CallByName function, in .NET there are
Activator.CreateInstance but it requires a Type instead of a string name of
type.
Function Activator.CreateInstance(Type) as Object
There is also CreateInstance(AssemblyName as string,ObjectTypeName as
string) but it returns ObjectHandle instead Object.
Function Activator.CreateInstance(String,String) as HandleObject

Any body knows how to do it as VB6's CallByName function?

NXHOANG, Vietnam
(e-mail address removed)
 
* "Nguyen Xuan Hoang said:
In VB6, There is CallByName function, in .NET there are Activator.CreateInstance but it requires a Type instead
of a string name of type.

Function Activator.CreateInstance(Type) as Object

There is also CreateInstance(AssemblyName as string,ObjectTypeName as string) but it returns ObjectHandle
instead Object.

Function Activator.CreateInstance(String,String) as HandleObject

\\\
Private Function CreateClassByName( _
ByVal PartialAssemblyName As String, _
ByVal QualifiedClassName As String _
) As Object
Return _
Activator.CreateInstance( _
[Assembly].LoadWithPartialName( _
PartialAssemblyName _
).GetType(QualifiedClassName) _
)
End Function
///

Usage:

\\\
Dim c As Control = _
DirectCast( _
CreateClassByName( _
"System.Windows.Forms", _
"System.Windows.Forms.Button" _
), _
Control _
)
With c
.Location = New Point(10, 10)
.Size = New Size(80, 26)
.Text = "Hello World"
End With
Me.Controls.Add(c)
///
Any body knows how to do it as VB6's CallByName function?

You can still use 'CallByName'.
 
Back
Top