クラスは参照されていないアセンブリを継承できますか?それとも自立させることができますか?クラスは自立できますか?
私は動的に参照されていないDLLをロードし、自分自身にそれを設定できるようにしたいのですが - のようなもの:
Public Class MyProject.SomeClassWrapper
Inherits System.Windows.Forms.AxHost
Public Sub New()
Dim dynamicallyLoadedAssembly As System.Reflection.Assembly = System.Reflection.Assembly.LoadFile("C:\Temp\SomeLibrary.dll")
Me = dynamicallyLoadedAssembly.CreateInstance("SomeLibrary.SomeClass") '<----- Doesn't work, but is there a way to do this?
End Sub
End Class
それとも、動的にクラスをロードし、それを継承?
'This class has the some of the properties/methods/etc as the library being imported
Public Class MyProject.SomeClassWrapper
Inherits System.Windows.Forms.AxHost
Public Sub New(clsid As String)
MyBase.New(clsid)
End Sub
Public Sub SomeSubroutineHere()
'Do something
End Sub
End Class
'This class needs to inherit from a dynamically loaded assembly via reflection
Public Class MyClass
Inherits MyProject.SomeClassWrapper
Public Sub New()
Dim dynamicallyLoadedAssembly As System.Reflection.Assembly = System.Reflection.Assembly.LoadFile("C:\Temp\SomeLibrary.dll")
Dim newInstance = dynamicallyLoadedAssembly.CreateInstance("SomeLibrary.SomeClass")
Dim strCLSID as String = "Where can i get the CLSID from here?"
MyBase = newInstance '<<< I want to set "MyBase" to the new instance so that when MyBase.New() is called, it's the full inherited library
MyBase.New(strCLSID)
End Sub
End Class
ありがとうございます!
いいえ、あなたはこれらのことを行うことはできません。オブジェクトが作成(または作成)されると、オブジェクトはタイプまたはインスタンスを変更できません。 VBは静的型言語です。 – Enigmativity
私に割り当てることはできません。まったく。あなたは本当に達成しようとしていますか?自分のライブラリを動的に読み込んでいるのですか?ライブラリは何を行い、なぜそれを動的にロードする必要がありますか? –