2015-10-08 4 views
0

Я не уверен, как настраиваемый конвертер должен быть для другого class, который я использую в качестве массива в пределах определенного class. Учитывая следующее - может ли кто-нибудь указать мне на лучший способ для конвертера? Я стараюсь избегать повторных полей с расширением номера в , чтобы обеспечить их раздельное, если это возможно.filehelpers Пользовательский конвертер

[FixedLengthRecord(FixedMode.AllowMoreChars)] 
public class Team 
{ 
    public Team() 
    { 
     Players = new member[2]{new member(), new member()}; 
    } 
    [FieldFixedLength(60)] 
    [FieldConverter(typeof(myMember)] 
    public member[] Players; 
} 

[FixedLengthRecord(FixedMode.AllowMoreChars)] 
public class member 
{ 
    [FieldFixedLength(10)] 
    public string FirstNameName; 

    [FieldFixedLength(10)] 
    public string LastName; 

    [FieldFixedLength(2)] 
    public string Spacer; 

    [FieldFixedLength(8)] 
    [FieldConverter(typeof(myDate), "MMddyyyy")] 
    public DateTime Birthday; 
} 

ответ

0

Я был уверен, что вам просто нужно украсить базовый класс с фиксированным или атрибутом разделителя, а затем наследовать от базового класса в классе членов. Если тогда вам нужно также иметь разные записи, основанные на базовом классе, прочитанные из того же файла, вам нужно будет использовать механизм с несколькими записями, а затем использовать настраиваемый селектор, чтобы вернуть тип, который требуется импортировать.

Таким образом, заставьте Member на основании команды.

0

Я думал больше о линиях пользовательского конвертера. Это должно работать.

internal sealed class SegmentConverter<T> : ConverterBase where T : class 
{ 
    public override string FieldToString(object from) 
    { 
     T value = (T)from; 
     return CommonEngine.WriteString<T>(new[] { value }).TrimEnd('\r', '\n'); 
    } 
    public override object StringToField(string from) 
    { 
     return CommonEngine.ReadString<T>(from).First(); 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^