-1

次のような URL から CSV ファイルを読み取る必要があります。http://somedomain.com/getdata.aspx?p1=param1&p2=param2

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(_serviceUrl);
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

StreamReader sr = new StreamReader(resp.GetResponseStream());
CsvReader csvread = new CsvReader(sr, new CsvConfiguration()
    {

    });
List<Entity> record = csvread.GetRecords<Entity>().ToList();
sr.Close();

しかし、私は運が悪い
ので、ヘッダーフィールドは次の<...>ようになります:

<Field1>;<Field2>;<Field3>

とデータ

stringValue;777;anotherStringValue

助けはありますか?

4

2 に答える 2

1

私にとっての解決策は、ファイルを読み取ってエンティティにマップすることです

    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(_serviceUrl);
    req.KeepAlive = false;
    req.ProtocolVersion = HttpVersion.Version10;
    HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

    using (StreamReader streamReader = new StreamReader(resp.GetResponseStream()))
    {
        CsvConfiguration configuration = new CsvConfiguration()
        {
            Delimiter = ";",
            HasHeaderRecord = true,
            IsHeaderCaseSensitive = false
        };
        configuration.RegisterClassMap<EntityMap>();
        CsvReader csvread = new CsvReader(streamReader, configuration);
        List<Entity> record = csvread.GetRecords<Entity>().ToList();
    }

そしてマッピングがあります:

public class EntityMap : CsvClassMap<Entity>
    {
        public override void CreateMap()
        {
            Map(m => m.Field1).Name("<Field1>");
            Map(m => m.Field2).Name("<Field2>");
        }
    }
于 2013-06-19T19:05:29.027 に答える