编辑:添加了使用 C# 对象的 Powershell 代码。真的很容易在 C# 中完成这一切并在 Powershell 中使用它。谢谢!
我在我的 PowerShell 代码中使用了 C# 中的两个对象。我想做一个FeatureObject,设置它的变量;然后制作 FeatureAttributes 并将其添加到 FeatureObject 中的列表中。我可以设置和获取字符串、整数等。但我无法将 FeatureAttribute 添加到 FeatureObject 的列表中。
C#
using System;
using System.Collections;
using System.Collections.Generic;
public class FeatureObject {
public string layerName;
public int numFeatures;
public string geometry;
public string unit;
List<FeatureAttr> objFtcAttr;
public FeatureObject()
{
objFtcAttr = new List<FeatureAttr>();
}
public List<FeatureAttr> ftcAttr { get; set; }
}
public class FeatureAttr {
public string AttrKeyName;
public string AttrDataType;
public string AttrNumericRange;
List<String> allValuesOfAttr = new List<String>();
public void setValueOfAttr (string value) {
this.allValuesOfAttr.Add(value);
}
public List<String> getValuesOfAttr() {
return(this.allValuesOfAttr);
}
}
附言
Add-Type -Path C:\projects\bin\FCObject.dll
$ftcObj = New-Object FeatureObject
$ftcAttr = New-Object FeatureAttr
$ftcObj = New-Object FeatureObject
$ftcObj.geometry = $geometry
$ftcObj.ftcAttr.Add($ftcAttr)
另外:我是否总是需要像下面和上面那样明确声明我的 getter 和 setter?我不能像 $ftcObj.geometry = $geometry 那样获取和设置数据吗?
public string geometry
{
get { return geometry; }
set { geometry = value; }
}
或者
public string geometry {get; set; }
请帮忙!