Добрый день.
WindowsForms, PropertyGrid, попробуйте импортировать класс из C #, чтобы использовать свойство [Display (Order = 2)], но когда я использую «using System.ComponentModel.DataAnnotations» , Я получаю сообщение об ошибке - «Аннотации данных» отсутствуют в пространствах имен «System.ComponentModel» «Что я делаю не так?
$Form = New-Object "System.Windows.Forms.Form"
$Form.Size = New-Object System.Drawing.Size @(600,600)
$PropertyGrid = New-Object "System.Windows.Forms.PropertyGrid"
$PropertyGrid.Dock = [System.Windows.Forms.DockStyle]::Fill
$Form.Controls.Add($PropertyGrid)
$Form.TopMost = $true
$code = @'
using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
public class PropClass222 {
int m_DisplayInt;
[Category("Text params")]
[DisplayName("Age")]
[Display(Order = 2)]
[Description("Age")]
public int DisplayInt
{
get { return m_DisplayInt; }
set { m_DisplayInt = value; }
}
//----------------------------------------
string m_FirstName;
[Category("Person")]
[DisplayName("First Name")]
[Description("Name")]
public string FirstName
{
get { return m_FirstName; }
set { m_FirstName = value; }
}
string m_LastName;
[Category("Person")]
[DisplayName("Last Name")]
[Description("Name")]
public string LastName
{
get { return m_LastName; }
set { m_LastName = value; }
}
//----------------------------------------
}
'@
Add-Type -TypeDefinition $code
$object = New-Object PropClass222
$object.FirstName = "Jon"
$object.LastName = "Doy"
$propertyGrid.SelectedObject = $object
$Form.ShowDialog()
PowerShell 5.1