PowerShell, PropertyGrid Свойство заказа и System.ComponentModel.DataAnnotations - PullRequest
0 голосов
/ 01 марта 2020

Добрый день.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...