あなたの痛みが分かります。NetTopologySuite(v1.13)でも同じようなことを経験し、単体テストである程度の成功を収めました。
最初に、DSシェープファイル操作に固有の同様の質問で参照されたDotSpatialライブラリをチェックアウトします。
私はNTSライブラリに個人的に満足しています。オブジェクトモデルがわかれば、何かをまとめるのはそれほど面倒ではありません。このトピックは複数回参照される可能性があるため、NTSからシェープファイルを作成するためのクイックコードダンプがあります。
1)NTS(1.13.0)バイナリをダウンロードします
2)次のアセンブリを参照します。
-GeoAPI、NetTopologySuite、NetTopologySuite.IO、NetTopologySuite.IO.GeoTools(この最後の1つが必要であると判断するのにかかった時間を推測します)
3)いくつかのコードを書く(これは10分間のハックジョブです)
NetTopologySuite、NetTopologySuite.IO、NetTopologySuite.Features、GeoAPI、GeoAPI.Geometriesのusingステートメントを追加します(これらをフォーマットするためにSOを取得する方法がわかりません)
string path = @"C:\data\atreides";
string firstNameAttribute = "firstname";
string lastNameAttribute = "lastname";
//create geometry factory
IGeometryFactory geomFactory = NtsGeometryServices.Instance.CreateGeometryFactory();
//create the default table with fields - alternately use DBaseField classes
AttributesTable t1 = new AttributesTable();
t1.AddAttribute(firstNameAttribute, "Paul");
t1.AddAttribute(lastNameAttribute, "Atreides");
AttributesTable t2 = new AttributesTable();
t2.AddAttribute(firstNameAttribute, "Duncan");
t2.AddAttribute(lastNameAttribute, "Idaho");
//create geometries and features
IGeometry g1 = geomFactory.CreatePoint(new Coordinate(300000, 5000000));
IGeometry g2 = geomFactory.CreatePoint(new Coordinate(300200, 5000300));
Feature feat1 = new Feature(g1, t1);
Feature feat2 = new Feature(g2, t2);
//create attribute list
IList<Feature> features = new List<Feature>() { feat1, feat2 };
ShapefileDataWriter writer = new ShapefileDataWriter(path) { Header = ShapefileDataWriter.GetHeader(features[0], features.Count) };
System.Collections.IList featList = (System.Collections.IList)features;
writer.Write(featList);
そのため、十分に文書化されていませんが、うまくいけばかなりポイント&シュートです。