Sitter i ett projekt där jag måste kommunicera med en stordator via flatfiler.
Kommunaktionen sker via ett CQRS mönster så mao mappas
C# (Command / Queries) >flatfil
I fallet av en query så får man även en flatfil som svar, vilket jag då konverterar till ett QueryResult-objekt
Just nu använder jag klassisk Reflection mao
propertyInfo.SetValue(obj, value);
Igentligen är det inget problem och kommer nog inte bli det med tanke på den datamägnd som skickas, men här har jag ett tillfälle att lära mig något jag inte använt förut vill titta lite på IL Baking för att snabba upp flatfil >objekt.
Jag har googlat lite och inte hittat någon klockrent blogg/tutorial etc om tekniken. Någon som har ett bra länktips?
Förtydligande, det är inte sjävla mappningen mellan flatfil och objekt jag vill lösa utan uppskapandet av pbjekt och property sättning.
Exempel på Query / Query result som det ser ut idag. Attributen används för att mappa mellan flatfil och C# klasser
[Record(RecordFormat.FixedLength)]
public class IncomingOrdersQuery : Query<IncomingOrdersQueryResult>{}
[Record(RecordFormat.FixedLength)]
public class IncomingOrdersQueryResult : QueryResult
{
[RecordType]
public IEnumerable<Order> Orders { get; set; }
}
[Record(RecordFormat.FixedLength)]
public class Order
{
[RecordElement(1, Length = 3)]
public string Type { get; set; }
[RecordElement(2, Length = 50)]
public string Fund { get; set; }
[RecordElement(3, Length = 10)]
public decimal? Amount { get; set; }
[RecordElement(4, Length = 10)]
public decimal? Shares { get; set; }
[RecordElement(5, Length = 3)]
public string CCY { get; set; }
[RecordElement(6, Length = 15)]
public string OrderId { get; set; }
[RecordElement(7, Length = 10, DateFormat = "yyMMddhhmm")]
public DateTime OrderDate { get; set; }
[RecordElementRead(8, Length = 20)]
public string Status { get; set; }
[RecordElement(9, Length = 11)]
public string Fundacc { get; set; }
[RecordElement(10, Length = 20)]
public string Cause { get; set; }
}