如何设置变量的属性

Mun*_*bib 1 c#

这是我的函数,它将所有项目放在数据库中.

 public bool getUserProjects(ref List<erpAssets>userProjects)
        {

            string arguments = "{\"sessionId\":\"" + m_LoggedInUser.sessionId + "\"," +
                                 "\"assetType\":\"" + PROJECT_ASSET_TYPE_NAME + "\"" +
                                "}";
            string response = UrlParser(METHOD_GET_ASSETS, MODULE_ADMINISTRATION, arguments); //calling the function urlParse to get the response from that page

            erpAPIResponse basicResponse = JsonConvert.DeserializeObject<erpAPIResponse>(response);

            if (basicResponse.success.Equals("yes"))
            {
                try
                {

                    erpAssets[] Projects = JsonConvert.DeserializeObject<erpAssets[]>(basicResponse.arguments);
                    userProjects.AddRange(Projects);

                }
                catch (Exception e)
                { 

                }

            }
            else return false;

            return true; // sending the response back to client            
        }
Run Code Online (Sandbox Code Playgroud)

我的erpAsset类如下:

 class erpAssets
    {
        public string assetId { get; set; }
        public string assetSerialNo { get; set; }
        public string serialNo { get; set; }

        public string assetDescription { get; set; }
        public string assetType { get; set; }
        public string parentId { get; set; }
        public string assetIsTrakable { get; set; }

        public bool isTrackable { get; set; }
        public bool isMovable { get; set; }


        public string assetInheritsRegion { get; set; }

        public string inheritsRegion { get; set; }

        public string assetModel { get; set; }

        public string model { get; set; }

        public erpPoint[] assetRegion { get; set; }

    }
Run Code Online (Sandbox Code Playgroud)

我的erpPoint类如下:

class erpPoint
    {

        public double X { get; set; }
        public double Y { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

现在问题是我面临的是当assetRegion为null然后我得到以下异常

将值""转换为"erp.erpPoint []"类型时出错.

scenario1工作正常:{"assetId":"43711","assetSerialNo":"Sector43","assetDescription":"","assetVersion":"","assetIsMovable":"f","assetType":" Project","assetModel":"Project","parentId":"32537","assetIsTrackable":"f","assetInheritsRegion":"f","assetRegion":[{"X": - 122.69103924537,"Y ":49.105749366835},{"X": - 122.69103924537,"Y":49.119046702041},{"X": - 122.68010753619,"Y":49.119046702041},{"X": - 122.68010753619,"Y":49.105749366835}] }

这工作正常.

Scenario2:

{"assetId":"64374","assetSerialNo":"FeedLot","assetDescription":"","assetVersion":"","assetIsMovable":"t","assetType":"Project","assetModel" :"Project","parentId":"64374","assetIsTrackable":"t","assetInheritsRegion":"f","assetRegion":""}

这是我得到例外的地方.assetregion为null,现在我在设置其值时遇到异常

ken*_*n2k 5

你有两个选择:

使用

{ get; set; }
Run Code Online (Sandbox Code Playgroud)

你不能指定一个身体.

或者你必须为getter和setter声明一个body .

另外注意double不可为空.请double?改用.

private double? x;

public double? X
{
    get { return this.x; }

    set
    {
        if (value != null)
        {
            this.x = value;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)