运行时对象序列化到SvcUtil工具生成的部分类重presentations [英] serialize runtime objects into svcutil generated partial class representations

查看:119
本文介绍了运行时对象序列化到SvcUtil工具生成的部分类重presentations的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用SvcUtil工具生成以下code:

  // ------------------------------------ ------------------------------------------
//&所述;自动生成>
//这个code是由工具生成。
//运行时版本:4.0.30319.239
//
//更改此文件可能会导致不正确的行为,如果将丢失
//在code再生。
//< /自动生成>
// ------------------------------------------------ ------------------------------

命名空间System.Net
{
    使用System.Runtime.Serialization;


    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [系统。codeDom.Compiler.Generated codeAttribute(System.Runtime.Serialization,4.0.0.0)]
    [System.Runtime.Serialization.DataContractAttribute(名称为端点,命名空间=htt​​p://schemas.datacontract.org/2004/07/System.Net)
    [System.Runtime.Serialization.KnownTypeAttribute(typeof运算(System.Net.IPEndPoint))]
    公共部分类的EndPoint:对象,System.Runtime.Serialization.IExtensibleDataObject
    {

        私人System.Runtime.Serialization.ExtensionDataObject extensionDataField;

        公共System.Runtime.Serialization.ExtensionDataObject ExtensionData
        {
            得到
            {
                返回this.extensionDataField;
            }
            组
            {
                this.extensionDataField =价值;
            }
        }
    }

    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [系统。codeDom.Compiler.Generated codeAttribute(System.Runtime.Serialization,4.0.0.0)]
    [System.Runtime.Serialization.DataContractAttribute(NAME =IPEndPoint,命名空间=htt​​p://schemas.datacontract.org/2004/07/System.Net)
    公共部分类IPEndPoint:System.Net.EndPoint
    {

        私人System.Net.IPAddress m_AddressField;

        私人诠释m_PortField;

        [System.Runtime.Serialization.DataMemberAttribute(IsRequired = TRUE)]
        公共System.Net.IPAddress m_Address
        {
            得到
            {
                返回this.m_AddressField;
            }
            组
            {
                this.m_AddressField =价值;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute(IsRequired = TRUE)]
        公众诠释m_Port
        {
            得到
            {
                返回this.m_PortField;
            }
            组
            {
                this.m_PortField =价值;
            }
        }
    }

    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [系统。codeDom.Compiler.Generated codeAttribute(System.Runtime.Serialization,4.0.0.0)]
    [System.Runtime.Serialization.DataContractAttribute(名称为ip地址,命名空间=htt​​p://schemas.datacontract.org/2004/07/System.Net)
    公共部分类ip地址:对象,System.Runtime.Serialization.IExtensibleDataObject
    {

        私人System.Runtime.Serialization.ExtensionDataObject extensionDataField;

        专用长m_AddressField;

        私人System.Net.Sockets.AddressFamily m_FamilyField;

        私人诠释m_Hash codeField;

        私人USHORT [] m_NumbersField;

        专用长m_ScopeIdField;

        公共System.Runtime.Serialization.ExtensionDataObject ExtensionData
        {
            得到
            {
                返回this.extensionDataField;
            }
            组
            {
                this.extensionDataField =价值;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute(IsRequired = TRUE)]
        众长m_Address
        {
            得到
            {
                返回this.m_AddressField;
            }
            组
            {
                this.m_AddressField =价值;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute(IsRequired = TRUE)]
        公共System.Net.Sockets.AddressFamily m_Family
        {
            得到
            {
                返回this.m_FamilyField;
            }
            组
            {
                this.m_FamilyField =价值;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute(IsRequired = TRUE)]
        公众诠释m_Hash code
        {
            得到
            {
                返回this.m_Hash codeField;
            }
            组
            {
                this.m_Hash codeField =价值;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute(IsRequired = TRUE)]
        公共USHORT [] m_Numbers
        {
            得到
            {
                返回this.m_NumbersField;
            }
            组
            {
                this.m_NumbersField =价值;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute(IsRequired = TRUE)]
        众长m_ScopeId
        {
            得到
            {
                返回this.m_ScopeIdField;
            }
            组
            {
                this.m_ScopeIdField =价值;
            }
        }
    }
}
命名空间的System.Net.Sockets
{
    使用System.Runtime.Serialization;


    [系统。codeDom.Compiler.Generated codeAttribute(System.Runtime.Serialization,4.0.0.0)]
    [System.Runtime.Serialization.DataContractAttribute(NAME =AddressFamily,命名空间=htt​​p://schemas.datacontract.org/2004/07/System.Net.Sockets)
    公共枚举AddressFamily:INT
    {

        [System.Runtime.Serialization.EnumMemberAttribute()]
        未知= -1,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        未指定= 0,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        的Unix = 1,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        网间= 2,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        ImpLink = 3,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        小狗= 4,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        混沌= 5,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        NS = 6,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        IPX = 6,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        异= 7,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        OSI = 7,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        ECMA = 8,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        DataKit = 9,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        CCITT = 10,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        SNA = 11,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        DECNET = 12,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        数据链接= 13,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        纬度= 14,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        HyperChannel = 15,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        的AppleTalk = 16,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        的NetBios = 17,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        VoiceView = 18,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        火狐= 19,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        榕树= 21,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        ATM = 22,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        InterNetworkV6 = 23,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        集群= 24,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Ieee12844 = 25,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        IRDA = 26,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        NetworkDesigners = 28,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        最大= 29,
    }
}


[系统。codeDom.Compiler.Generated codeAttribute(System.ServiceModel,4.0.0.0)]
[System.ServiceModel.ServiceContractAttribute(ConfigurationName =IConnectionHost,CallbackContract = typeof运算(IConnectionHostCallback),SessionMode = System.ServiceModel.SessionMode.Required)
公共接口IConnectionHost
{

    [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IConnectionHost/OpenTunnel", ReplyAction =htt​​p://tempuri.org/IConnectionHost/OpenTunnelResponse)]
    布尔OpenTunnel(INT serverPort);

    [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IConnectionHost/CloseTunnel", ReplyAction =htt​​p://tempuri.org/IConnectionHost/CloseTunnelResponse)]
    布尔CloseTunnel(INT serverPort);

    [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IConnectionHost/DisconnectAtHost", ReplyAction =htt​​p://tempuri.org/IConnectionHost/DisconnectAtHostResponse)]
    布尔DisconnectAtHost(INT serverPort,System.Net.IPEndPoint客户端);

    [System.ServiceModel.OperationContractAttribute(ACTION =htt​​p://tempuri.org/IConnectionHost/Reply,ReplyAction =htt​​p://tempuri.org/IConnectionHost/ReplyResponse)
    INT回复(INT serverPort,System.Net.IPEndPoint客户端,[System.ServiceModel.MessageParameterAttribute(名称为回复)的byte [] reply1);
}

[系统。codeDom.Compiler.Generated codeAttribute(System.ServiceModel,4.0.0.0)]
公共接口IConnectionHostCallback
{

    [System.ServiceModel.OperationContractAttribute(IsOneWay = TRUE,行动=htt​​p://tempuri.org/IConnectionHost/Relay)
    无效继电器(INT serverPort,System.Net.IPEndPoint客户端,byte []的信息);

    [System.ServiceModel.OperationContractAttribute(IsOneWay = TRUE,行动=htt​​p://tempuri.org/IConnectionHost/DisconnectAtClient)
    无效DisconnectAtClient(INT serverPort,System.Net.IPEndPoint客户端);
}

[系统。codeDom.Compiler.Generated codeAttribute(System.ServiceModel,4.0.0.0)]
公共接口IConnectionHostChannel:IConnectionHost,System.ServiceModel.IClientChannel
{
}

[System.Diagnostics.DebuggerStepThroughAttribute()]
[系统。codeDom.Compiler.Generated codeAttribute(System.ServiceModel,4.0.0.0)]
公共部分类ConnectionHostClient:System.ServiceModel.DuplexClientBase< IConnectionHost>中IConnectionHost
{

    公共ConnectionHostClient(System.ServiceModel.InstanceContext callbackInstance):
            底座(callbackInstance)
    {
    }

    公共ConnectionHostClient(System.ServiceModel.InstanceContext callbackInstance,串endpointConfigurationName):
            基地(callbackInstance,endpointConfigurationName)
    {
    }

    公共ConnectionHostClient(System.ServiceModel.InstanceContext callbackInstance,串endpointConfigurationName,串remoteAddress):
            基地(callbackInstance,endpointConfigurationName,remoteAddress)
    {
    }

    公共ConnectionHostClient(System.ServiceModel.InstanceContext callbackInstance,串endpointConfigurationName,System.ServiceModel.EndpointAddress remoteAddress):
            基地(callbackInstance,endpointConfigurationName,remoteAddress)
    {
    }

    公共ConnectionHostClient(System.ServiceModel.InstanceContext callbackInstance,System.ServiceModel.Channels.Binding结合,System.ServiceModel.EndpointAddress remoteAddress):
            基地(callbackInstance,装订,remoteAddress)
    {
    }

    公共BOOL OpenTunnel(INT serverPort)
    {
        返回base.Channel.OpenTunnel(serverPort);
    }

    公共BOOL CloseTunnel(INT serverPort)
    {
        返回base.Channel.CloseTunnel(serverPort);
    }

    公共BOOL DisconnectAtHost(INT serverPort,System.Net.IPEndPoint客户端)
    {
        返回base.Channel.DisconnectAtHost(serverPort,客户端);
    }

    公众诠释回复(INT serverPort,System.Net.IPEndPoint客户端,byte []的reply1)
    {
        返回base.Channel.Reply(serverPort,客户端,reply1);
    }
}
 

然后,在数学(8)及.NET /链接创建IPEndPoint对象:

  EP // ClearAll
EP [port_]:=网页特效[System.Net.IPEndPoint,网页特效[System.Net.IPAddress,{127,0,0,1}],port_]

retargetedEndPoint = EP @ 900
 

和尝试调用:

 。回复(,retargetedEndPoint,。)
 

问题是数学IPEndPoint对象真正System.NET.IPEndPoint型,而预期的是一些序列重新presentation!

  1. 如何转换后者?
  2. 如何将这些部分类SvcUtil工具生成的行为,他们是否延长?真正System.NET.IPEndPoint类型或仅仅是他们的影子,因为它假定C#编译器(不运行时)会自动处理必要的转换定义?
解决方案

它不看的权利,你会产生System.Net命名空间什么。我想,也许你​​想使用 /参考:<文件路径> SvcUtil工具的选项,它知道到哪里寻找现有类型

I use svcutil to generate the following code:

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.239
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace System.Net
{
    using System.Runtime.Serialization;


    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="EndPoint", Namespace="http://schemas.datacontract.org/2004/07/System.Net")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(System.Net.IPEndPoint))]
    public partial class EndPoint : object, System.Runtime.Serialization.IExtensibleDataObject
    {

        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;

        public System.Runtime.Serialization.ExtensionDataObject ExtensionData
        {
            get
            {
                return this.extensionDataField;
            }
            set
            {
                this.extensionDataField = value;
            }
        }
    }

    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="IPEndPoint", Namespace="http://schemas.datacontract.org/2004/07/System.Net")]
    public partial class IPEndPoint : System.Net.EndPoint
    {

        private System.Net.IPAddress m_AddressField;

        private int m_PortField;

        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public System.Net.IPAddress m_Address
        {
            get
            {
                return this.m_AddressField;
            }
            set
            {
                this.m_AddressField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public int m_Port
        {
            get
            {
                return this.m_PortField;
            }
            set
            {
                this.m_PortField = value;
            }
        }
    }

    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="IPAddress", Namespace="http://schemas.datacontract.org/2004/07/System.Net")]
    public partial class IPAddress : object, System.Runtime.Serialization.IExtensibleDataObject
    {

        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;

        private long m_AddressField;

        private System.Net.Sockets.AddressFamily m_FamilyField;

        private int m_HashCodeField;

        private ushort[] m_NumbersField;

        private long m_ScopeIdField;

        public System.Runtime.Serialization.ExtensionDataObject ExtensionData
        {
            get
            {
                return this.extensionDataField;
            }
            set
            {
                this.extensionDataField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public long m_Address
        {
            get
            {
                return this.m_AddressField;
            }
            set
            {
                this.m_AddressField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public System.Net.Sockets.AddressFamily m_Family
        {
            get
            {
                return this.m_FamilyField;
            }
            set
            {
                this.m_FamilyField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public int m_HashCode
        {
            get
            {
                return this.m_HashCodeField;
            }
            set
            {
                this.m_HashCodeField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public ushort[] m_Numbers
        {
            get
            {
                return this.m_NumbersField;
            }
            set
            {
                this.m_NumbersField = value;
            }
        }

        [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)]
        public long m_ScopeId
        {
            get
            {
                return this.m_ScopeIdField;
            }
            set
            {
                this.m_ScopeIdField = value;
            }
        }
    }
}
namespace System.Net.Sockets
{
    using System.Runtime.Serialization;


    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="AddressFamily", Namespace="http://schemas.datacontract.org/2004/07/System.Net.Sockets")]
    public enum AddressFamily : int
    {

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Unknown = -1,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Unspecified = 0,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Unix = 1,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        InterNetwork = 2,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        ImpLink = 3,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Pup = 4,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Chaos = 5,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        NS = 6,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Ipx = 6,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Iso = 7,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Osi = 7,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Ecma = 8,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        DataKit = 9,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Ccitt = 10,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Sna = 11,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        DecNet = 12,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        DataLink = 13,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Lat = 14,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        HyperChannel = 15,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        AppleTalk = 16,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        NetBios = 17,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        VoiceView = 18,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        FireFox = 19,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Banyan = 21,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Atm = 22,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        InterNetworkV6 = 23,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Cluster = 24,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Ieee12844 = 25,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Irda = 26,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        NetworkDesigners = 28,

        [System.Runtime.Serialization.EnumMemberAttribute()]
        Max = 29,
    }
}


[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(ConfigurationName="IConnectionHost", CallbackContract=typeof(IConnectionHostCallback), SessionMode=System.ServiceModel.SessionMode.Required)]
public interface IConnectionHost
{

    [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IConnectionHost/OpenTunnel", ReplyAction="http://tempuri.org/IConnectionHost/OpenTunnelResponse")]
    bool OpenTunnel(int serverPort);

    [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IConnectionHost/CloseTunnel", ReplyAction="http://tempuri.org/IConnectionHost/CloseTunnelResponse")]
    bool CloseTunnel(int serverPort);

    [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IConnectionHost/DisconnectAtHost", ReplyAction="http://tempuri.org/IConnectionHost/DisconnectAtHostResponse")]
    bool DisconnectAtHost(int serverPort, System.Net.IPEndPoint client);

    [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IConnectionHost/Reply", ReplyAction="http://tempuri.org/IConnectionHost/ReplyResponse")]
    int Reply(int serverPort, System.Net.IPEndPoint client, [System.ServiceModel.MessageParameterAttribute(Name="reply")] byte[] reply1);
}

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public interface IConnectionHostCallback
{

    [System.ServiceModel.OperationContractAttribute(IsOneWay=true, Action="http://tempuri.org/IConnectionHost/Relay")]
    void Relay(int serverPort, System.Net.IPEndPoint client, byte[] message);

    [System.ServiceModel.OperationContractAttribute(IsOneWay=true, Action="http://tempuri.org/IConnectionHost/DisconnectAtClient")]
    void DisconnectAtClient(int serverPort, System.Net.IPEndPoint client);
}

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public interface IConnectionHostChannel : IConnectionHost, System.ServiceModel.IClientChannel
{
}

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public partial class ConnectionHostClient : System.ServiceModel.DuplexClientBase<IConnectionHost>, IConnectionHost
{

    public ConnectionHostClient(System.ServiceModel.InstanceContext callbackInstance) : 
            base(callbackInstance)
    {
    }

    public ConnectionHostClient(System.ServiceModel.InstanceContext callbackInstance, string endpointConfigurationName) : 
            base(callbackInstance, endpointConfigurationName)
    {
    }

    public ConnectionHostClient(System.ServiceModel.InstanceContext callbackInstance, string endpointConfigurationName, string remoteAddress) : 
            base(callbackInstance, endpointConfigurationName, remoteAddress)
    {
    }

    public ConnectionHostClient(System.ServiceModel.InstanceContext callbackInstance, string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
            base(callbackInstance, endpointConfigurationName, remoteAddress)
    {
    }

    public ConnectionHostClient(System.ServiceModel.InstanceContext callbackInstance, System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
            base(callbackInstance, binding, remoteAddress)
    {
    }

    public bool OpenTunnel(int serverPort)
    {
        return base.Channel.OpenTunnel(serverPort);
    }

    public bool CloseTunnel(int serverPort)
    {
        return base.Channel.CloseTunnel(serverPort);
    }

    public bool DisconnectAtHost(int serverPort, System.Net.IPEndPoint client)
    {
        return base.Channel.DisconnectAtHost(serverPort, client);
    }

    public int Reply(int serverPort, System.Net.IPEndPoint client, byte[] reply1)
    {
        return base.Channel.Reply(serverPort, client, reply1);
    }
}

Then in Mathematica (8) & .NET/Link create an IPEndPoint object:

ep // ClearAll
ep[port_] := NETNew["System.Net.IPEndPoint", NETNew["System.Net.IPAddress", {127, 0, 0, 1}], port_]

retargetedEndPoint=ep@900

and try to call:

.Reply(.,retargetedEndPoint,.)

The problem is the Mathematica IPEndPoint object is of the genuine System.NET.IPEndPoint type whereas the expected one is some serialized representation!

  1. How can I convert the latter?
  2. How do these partial classes svcutil generates behave, do they extend?? the definitions of the real System.NET.IPEndPoint types or merely shadow them as it is assumed C# compilers (not the runtime) will automatically handle the necessary conversions?

解决方案

It doesn't look right that you would generate anything in the System.Net namespace. I think maybe you want to use the /reference:<file path> option of svcutil so that it know where to look for existing types.

这篇关于运行时对象序列化到SvcUtil工具生成的部分类重presentations的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆