-2

私はオブジェクトをマップしようとしています(そしてそれは以前は機能していました!)が、この新しいアプリケーションではNullReferenceException、私が理解していないように見えるをスローするようです。これがコードです、誰かがこの問題を解決し、これがどのように起こり得るかを説明できますか?

    private xRoute.Point ConvertXLocate2XRoute(xLocate.Point point)
    {
        xRoute.Point converted = new xRoute.Point();
        //KML
        converted.kml.kml = point.kml.kml;
        converted.kml.wrappedPlacemarks = point.kml.wrappedPlacemarks;

        //POINT
        converted.point.x = point.point.x;
        converted.point.y = point.point.y;

        //WKB
        converted.wkb = point.wkb;

        //WKT
        converted.wkt = point.wkt;

        return converted;
    }
4

2 に答える 2

1

と仮定point.kmlpoint.pointてnullではない:

のコンストラクターがxRoute.Pointネストされたオブジェクトのプロパティをインスタンス化しない場合は、自分でインスタンス化する必要があります。

converted.kml = new ...();
...
converted.point = new ...();

また、そのようなマッパー用のより簡潔なコードを提案します。

    private xRoute.Point ConvertXLocate2XRoute(xLocate.Point point)
    {
        return new xRoute.Point
        {
            kml = new Kml   // Replace by the actual name of this type
            {
                kml = point.kml.kml,
                wrappedPlacemarks = point.kml.wrappedPlacemarks
            },
            point = new Point // Replace by the actual name of this type
            {
                x = point.point.x,
                y = point.point.y,
            },
            wkb = point.wkb,
            wkt = point.wkt
        };
    }
于 2013-01-14T09:13:25.710 に答える
1

コードにはnull参照チェックがなく、ポイント自体がnullであるか、point.kmlがnullであるか、または他の場所である可能性があります。例外がスローされたときにブレークをオンにしてデバッグを試してください。studio(CTRL + ALT + E、VS2005のドキュメントリファレンス:[例外]ダイアログボックス)を使用して、例外をスローしている行を簡単に見つけて修正します。

于 2013-01-14T09:14:39.417 に答える