Преобразование пользовательских типов Java в C#

Мне нужно преобразовать следующий пользовательский тип с высокой точностью, но я совершенно не знаком с Java.

Я пытаюсь перенести Java на C# вручную, но мне было слишком сложно правильно преобразовать. Может ли кто-нибудь помочь мне преобразовать в код C#? Я буду очень признателен!

Исходный код IDCardInfo.java:

package com.sunmi.idcardservice;

import android.os.Parcel;
import android.os.Parcelable;

public class IDCardInfo implements Parcelable {

    private String name;
    private String gender;
    private String nation;
    private String birthDay;
    private String address;
    private String idCard;
    private String department;
    private String startDate;
    private String endDate;
    private String imageAddress;
    private FingerPrint firstFinger;
    private FingerPrint secondFinger;


    public IDCardInfo() {
    }

    public IDCardInfo(String name, String gender, String nation, String birthDay, String address,
                      String idCard, String department, String startDate, String endDate) {
        this.name = name;
        this.gender = gender;
        this.nation = nation;
        this.birthDay = birthDay;
        this.address = address;
        this.idCard = idCard;
        this.department = department;
        this.startDate = startDate;
        this.endDate = endDate;
    }

    protected IDCardInfo(Parcel in) {
        name = in.readString();
        gender = in.readString();
        nation = in.readString();
        birthDay = in.readString();
        address = in.readString();
        idCard = in.readString();
        department = in.readString();
        startDate = in.readString();
        endDate = in.readString();
        imageAddress = in.readString();
        firstFinger = in.readParcelable(FingerPrint.class.getClassLoader());
        secondFinger = in.readParcelable(FingerPrint.class.getClassLoader());
    }

    public static final Creator<IDCardInfo> CREATOR = new Creator<IDCardInfo>() {
        @Override
        public IDCardInfo createFromParcel(Parcel in) {
            return new IDCardInfo(in);
        }

        @Override
        public IDCardInfo[] newArray(int size) {
            return new IDCardInfo[size];
        }
    };

    public String getName() {
        return name;
    }

    public String getGender() {
        return gender;
    }

    public String getNation() {
        return nation;
    }

    public String getBirthDay() {
        return birthDay;
    }

    public String getAddress() {
        return address;
    }

    public String getIdCard() {
        return idCard;
    }

    public String getDepartment() {
        return department;
    }

    public String getStartDate() {
        return startDate;
    }

    public String getEndDate() {
        return endDate;
    }

    public String getImageAddress() {
        return imageAddress;
    }

    public FingerPrint getFirstFinger() {
        return firstFinger;
    }

    public FingerPrint getSecondFinger() {
        return secondFinger;
    }

    public IDCardInfo setImageAddress(String imageAddress) {
        this.imageAddress = imageAddress;
        return this;
    }

    public IDCardInfo setFirstFinger(FingerPrint firstFinger) {
        this.firstFinger = firstFinger;
        return this;
    }

    public IDCardInfo setSecondFinger(FingerPrint secondFinger) {
        this.secondFinger = secondFinger;
        return this;
    }

    @Override
    public String toString() {
        return "IDCardInfo{" +
                "name='" + name + '\'' +
                ", gender='" + gender + '\'' +
                ", nation='" + nation + '\'' +
                ", birthDay=" + birthDay +
                ", address='" + address + '\'' +
                ", idCard='" + idCard + '\'' +
                ", department='" + department + '\'' +
                ", startDate='" + startDate + '\'' +
                ", endDate='" + endDate + '\'' +
                ", imageAddress='" + imageAddress + '\'' +
                ", firstFinger=" + firstFinger +
                ", secondFinger=" + secondFinger +
                '}';
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(name);
        dest.writeString(gender);
        dest.writeString(nation);
        dest.writeString(birthDay);
        dest.writeString(address);
        dest.writeString(idCard);
        dest.writeString(department);
        dest.writeString(startDate);
        dest.writeString(endDate);
        dest.writeString(imageAddress);
        dest.writeParcelable(firstFinger, flags);
        dest.writeParcelable(secondFinger, flags);
    }

    public void readFromParcel(Parcel in) {
        new IDCardInfo(in);
    }

    static class FingerPrint implements Parcelable {
        public String position;
        public byte quality;

        public FingerPrint() {
        }

        public FingerPrint(String position, byte quality) {
            this.position = position;
            this.quality = quality;
        }

        protected FingerPrint(Parcel in) {
            position = in.readString();
            quality = in.readByte();
        }

        public static final Creator<FingerPrint> CREATOR = new Creator<FingerPrint>() {
            @Override
            public FingerPrint createFromParcel(Parcel in) {
                return new FingerPrint(in);
            }

            @Override
            public FingerPrint[] newArray(int size) {
                return new FingerPrint[size];
            }
        };

        @Override
        public int describeContents() {
            return 0;
        }

        @Override
        public void writeToParcel(Parcel dest, int flags) {
            dest.writeString(position);
            dest.writeByte(quality);
        }

        public void readFromParcel(Parcel in) {
            new FingerPrint(in);
        }

        @Override
        public String toString() {
            return "FingerPrint{" +
                    "position='" + position + '\'' +
                    ", quality='" + quality + '\'' +
                    '}';
        }
    }


}

Это результат моего обращения。

IDCardInfo.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;

using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Java.Interop;
using Java.Lang;
using String = System.String;

namespace Com.Sunmi.Idcardservice
{
    public class IDCardInfo :Java.Lang.Object, IParcelable, IParcelableCreator
    {
        private String name;
        private String gender;
        private String nation;
        private String birthDay;
        private String address;
        private String idCard;
        private String department;
        private String startDate;
        private String endDate;
        private String imageAddress;
        private FingerPrint firstFinger;
        private FingerPrint secondFinger;
        public IDCardInfo()
        {
        }

        public IDCardInfo(String name, String gender, String nation, String birthDay, String address,
                          String idCard, String department, String startDate, String endDate)
        {
            this.name = name;
            this.gender = gender;
            this.nation = nation;
            this.birthDay = birthDay;
            this.address = address;
            this.idCard = idCard;
            this.department = department;
            this.startDate = startDate;
            this.endDate = endDate;
        }

        protected IDCardInfo(Parcel @in)
        {
            name = @in.ReadString();
            gender = @in.ReadString();
            nation = @in.ReadString();
            birthDay = @in.ReadString();
            address = @in.ReadString();
            idCard = @in.ReadString();
            department = @in.ReadString();
            startDate = @in.ReadString();
            endDate = @in.ReadString();
            imageAddress = @in.ReadString();
            firstFinger =(FingerPrint) @in.ReadParcelable(Java.Lang.Class.FromType(typeof(FingerPrint)).ClassLoader);
            secondFinger = (FingerPrint)@in.ReadParcelable(Java.Lang.Class.FromType(typeof(FingerPrint)).ClassLoader);
    }

        public Java.Lang.Object CreateFromParcel(Parcel source)
        {
            return new IDCardInfo(source);
        }

        public Java.Lang.Object[] NewArray(int size)
        {
            return new IDCardInfo[size];
        }
        public String GetName()
        {
            return name;
        }

        public String GetGender()
        {
            return gender;
        }

        public String GetNation()
        {
            return nation;
        }

        public String GetBirthDay()
        {
            return birthDay;
        }

        public String GetAddress()
        {
            return address;
        }

        public String GetIdCard()
        {
            return idCard;
        }

        public String GetDepartment()
        {
            return department;
        }

        public String GetStartDate()
        {
            return startDate;
        }

        public String GetEndDate()
        {
            return endDate;
        }

        public String GetImageAddress()
        {
            return imageAddress;
        }

        public FingerPrint GetFirstFinger()
        {
            return firstFinger;
        }

        public FingerPrint GetSecondFinger()
        {
            return secondFinger;
        }
        public IDCardInfo SetImageAddress(String imageAddress)
        {
            this.imageAddress = imageAddress;
            return this;
        }

        public IDCardInfo SetFirstFinger(FingerPrint firstFinger)
        {
            this.firstFinger = firstFinger;
            return this;
        }

        public IDCardInfo SetSecondFinger(FingerPrint secondFinger)
        {
            this.secondFinger = secondFinger;
            return this;
        }

        public int DescribeContents()
        {
            return 0;
        }

        public void WriteToParcel(Parcel dest, [GeneratedEnum] ParcelableWriteFlags flags)
        {
            dest.WriteString(name);
            dest.WriteString(gender);
            dest.WriteString(nation);
            dest.WriteString(birthDay);
            dest.WriteString(address);
            dest.WriteString(idCard);
            dest.WriteString(department);
            dest.WriteString(startDate);
            dest.WriteString(endDate);
            dest.WriteString(imageAddress);
            dest.WriteParcelable(firstFinger, flags);
            dest.WriteParcelable(secondFinger, flags);
        }
        public void ReadFromParcel(Parcel @in)
        {
            new IDCardInfo(@in);
        }
        //@Override
        //public String toString()
        //{
        //    return "IDCardInfo{" +
        //            "name='" + name + '\'' +
        //            ", gender='" + gender + '\'' +
        //            ", nation='" + nation + '\'' +
        //            ", birthDay=" + birthDay +
        //            ", address='" + address + '\'' +
        //            ", idCard='" + idCard + '\'' +
        //            ", department='" + department + '\'' +
        //            ", startDate='" + startDate + '\'' +
        //            ", endDate='" + endDate + '\'' +
        //            ", imageAddress='" + imageAddress + '\'' +
        //            ", firstFinger=" + firstFinger +
        //            ", secondFinger=" + secondFinger +
        //            '}';
        //}

    }
    public  class FingerPrint : Java.Lang.Object, IParcelable, IParcelableCreator
    {
        public String position;
        public sbyte quality;
        public FingerPrint()
        {
        }

        public FingerPrint(String position, sbyte quality)
        {
            this.position = position;
            this.quality = quality;
        }

        protected FingerPrint(Parcel @in)
        {
            position = @in.ReadString();
            quality = @in.ReadByte();
        }

        public Java.Lang.Object CreateFromParcel(Parcel source)
        {
            return new FingerPrint(source);
        }

        public int DescribeContents()
        {
            return 0;
        }

        public Java.Lang.Object[] NewArray(int size)
        {
            return new FingerPrint[size];
        }

        public void WriteToParcel(Parcel dest, [GeneratedEnum] ParcelableWriteFlags flags)
        {
            dest.WriteString(position);
            dest.WriteByte(quality);
        }
        public void ReadFromParcel(Parcel @in)
        {
            new FingerPrint(@in);
        }
        //@Override
        //public String toString()
        //{
        //    return "FingerPrint{" +
        //            "position='" + position + '\'' +
        //            ", quality='" + quality + '\'' +
        //            '}';
        //}
    }
}

0 ответов

Другие вопросы по тегам