さまざまな「Init」、「Accumulate」... メソッドがどのように機能し、VB.Net コードから DLL 内にあるメソッドを呼び出すことができるかを把握できません。
呼び出すメソッドに次のシグネチャがあるとします。
public double ComputeMeanPosition(ref SortedList<DateTime, double> posByTime)
メソッドの実際の使用例を教えてください。または、実際にメソッドにパラメーターを渡し、呼び出して結果を取得する方法について、いくつかのヒントを教えてください。
@Olivier Jacot-Descombes: クラス名の前に名前空間名を付けることは間違いありませんが、オブジェクトに到達できません。実際、あなたの親切な提案には、ロードされた DLL のイントロスペクションを通じて表示される次のメソッドが含まれていないことに驚いています。
Type: MyClassName
Method: Void Init()
Method: Void Accumulate(System.Data.SqlTypes.SqlDouble, System.Data.SqlTypes.SqlDateTime, System.Data.SqlTypes.SqlBoolean)
Method: Void Merge(MyClassName)
Method: System.Data.SqlTypes.SqlDouble Terminate()
Method: Void Write(System.IO.BinaryWriter)
Method: Void Read(System.IO.BinaryReader)
Method: Boolean Equals(System.Object)
Method: Int32 GetHashCode()
Method: System.String ToString()
Method: System.Type GetType()
編集
実際、次のようなコードがあり、DLL を正常に検査し、そこからいくつかの型とメソッドを取得して、呼び出したいメソッドに対して上記の結果を示しています。
ここにコードがあります
For Each oneModule As Reflection.Module In useAssembly.GetLoadedModules() Console.WriteLine(" - " & oneModule.Name) For Each oneType As System.Type In oneModule.GetTypes() Console.WriteLine(" Type: " & oneType.Name) For Each oneField As Reflection.FieldInfo In oneType.GetFields() Console.WriteLine(" Field: " & oneField.ToString()) Next oneField For Each oneMethod As Reflection.MethodInfo In oneType.GetMethods() Console.WriteLine(" Method: " & oneMethod.ToString()) [[ ADD "Invoke" here ?]] Next oneMethod Next oneType Next oneModule
最後に、[[...]] は、選択したメソッドを呼び出すために Invoke メソッドを呼び出す必要がある場所にあるようですが、そこが行き詰まっている場所です...ビルドする必要がありますか?呼び出す前のオブジェクト? どのようにパラメータを渡す必要がありますか? 結果を取得する方法は?