Calling Functions From .NET Assemblies - Array
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Calling Functions From .NET Assemblies - Array
I have a C# method looking like this:
public string[] Foo(int a, int b, int c)
I would like to call it in TestComplete like this:
var t = testCompleteHelper.Foo(0, 0, 0);
Log.Message("foo: "+t[0]);
For some reason TestComplete says the value is undefied.
string, int as return values work perfectly fine for me, but somehow string array doesnt seem to do in TestComplete. I've tried to use it via OleValue, but it did not work either: t[0].OleValue or t.OleValue[0]
I would really appreciate any help.
Best Regards,
Attila
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Attila,
Try using the following code --
var arr = testCompleteHelper.Foo(0, 0, 0);
Log.Message("foo: " + arr.GetValue(0).OleValue);
When you call your .NET method, TestComplete gets the array object as it is specified in .NET. To reach array items, you have to use this object's methods.
I guess, managed applications actually work with the same objects too. However, the C# compiler adds all the needed helper calls behind the scenes, so you use a simpler notation (e.g. arr[0]) in C# source code.
Any views or opinions expressed do not necessarily represent those of SmartBear Software.
-----
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I am facing a similar problem with String Array in JavaScript.
I am trying to pass a String array to a parameter but it always falis with Type Mismatch error.
Below is the JavaSript code that I am using.
dotNET.<dll>.<class1>.GetInstance.<field> = ["/INI=C:\\Temp\\Text.txt"];
the <field> above is expecting a DotNet String array but it is not accepting JavaScript array. is there a way to cast JS array to dotNet array.
Thanks,
Yusuf
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Yusuf,
Try the advice by @HKosova from here: https://community.smartbear.com/t5/TestComplete-Functional-Web/Working-with-array-in-dotNET/m-p/8915...
> dotNET.<dll>.<class1>.GetInstance.<field> = ["/INI=C:\\Temp\\Text.txt"];
Also, I am not sure about .GetInstance() call - maybe you first must create an instance of the object by calling its constructor (one of .zctor() methods) and work with the property of the created instance.
/Alex [Community Champion]
____
[Community Champions] are not employed by SmartBear Software but
are just volunteers who have some experience with the tools by SmartBear Software
and a desire to help others. Posts made by [Community Champions]
may differ from the official policies of SmartBear Software and should be treated
as the own private opinion of their authors and under no circumstances as an
official answer from SmartBear Software.
The [Community Champion] signature is assigned on quarterly basis and is used with permission by SmartBear Software.
https://community.smartbear.com/t5/Community-Champions/About-the-Community-Champions-Program/gpm-p/252662
================================
