You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Yaroslav Molochkov (Jira)" <ji...@apache.org> on 2020/12/15 14:26:00 UTC

[jira] [Comment Edited] (IGNITE-13734) .NET Service loses returned array type information

    [ https://issues.apache.org/jira/browse/IGNITE-13734?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17249718#comment-17249718 ] 

Yaroslav Molochkov edited comment on IGNITE-13734 at 12/15/20, 2:25 PM:
------------------------------------------------------------------------

[~nizhikov], [~ptupitsyn],

there's one idea: is it worth the effort to modify returned array from a reflection call? We have to create one and then move each element to the newly created array. That's double the memory and O\(n\) complexity. And not every client code need that cast. And then, it's not really consistent if client code will receive casted array and, for example, not parametrised list.


was (Author: yamolochkov):
[~nizhikov], [~ptupitsyn],

there's one idea: is it worth the effort to modify returned array from a reflection call? We have to create one and then move each element to the newly created array. That's double the memory and O(n) complexity. And not every client code need that cast. And then, it's not really consistent if client code will receive casted array and, for example, not parametrised list.

> .NET Service loses returned array type information
> --------------------------------------------------
>
>                 Key: IGNITE-13734
>                 URL: https://issues.apache.org/jira/browse/IGNITE-13734
>             Project: Ignite
>          Issue Type: Bug
>          Components: platforms
>    Affects Versions: 2.9
>            Reporter: Alexey Kukushkin
>            Assignee: Nikolai Kulagin
>            Priority: Major
>
> .NET service client receives Object[] instead of strongly typed array from a .NET service. 
> There was another already resolved similar issue IGNITE-12823 that addressed the problem of using arrays as parameters. The problem of using arrays as results still exists.
> h3. Reproducer
> A .NET service returning an array of user-defined types is deployed:
> {code:c#}
> public interface ITestService
> {
>     Parameter[] TestReturnParametersArray();
> }
> public sealed class Parameter
> {
>     public int Id { get; set; }
>     public int[] Values { get; set; }
> }
> {code}
> A .NET client calls the service:
> {code:c#}
> Parameter[] res = svcProxy.TestReturnParametersArray()
> {code}
> The service call fails with exception:
> {code}
> System.InvalidCastException : Unable to cast object of type 'System.Object[]' to type 'Parameter[]'.
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)