Преобразование пользовательских типов 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 + '\'' +
// '}';
//}
}
}