PowerShell с Csom ClientContext Castto метод

Как мне поставить этот C# CSOM в powershell

TaxonomyField taxonomyField = clientContext.CastTo (field);

Я пытался: $taxonomyField = $clientContext.CastTo[Microsoft.SharePoint.Client.Taxonomy.TaxonomyField]

но не работает.

3 ответа

Потратил на это целый день. Надеюсь, кто-то найдет это полезным! Это связано с вызовом универсальных методов (в любое время, когда вы видите вызов функции) в powershell. Я сжал его до одной строки, потому что мне это нравится.

Кроме того, $global:ctx - это просто мой объект контекста клиента.

$txField = [Microsoft.SharePoint.Client.ClientContext].GetMethod("CastTo").MakeGenericMethod([Microsoft.SharePoint.Client.Taxonomy.TaxonomyField]).Invoke($global:ctx, $field)

Начните с обычного поля CSOM SharePoint, которое представляет поле управляемых метаданных.

$field = [Microsoft.SharePoint.Client.Field]$someFieldFromItemListOrContentType;

Приведение поля непосредственно к типу таксономии будет нулевым.

$taxonomyField = [Microsoft.SharePoint.Client.Taxonomy.TaxonomyField]$field;

Кастинг TypedObject свойство в поле таксономии не будет нулевым.

$taxonomyField = [Microsoft.SharePoint.Client.Taxonomy.TaxonomyField]$field.TypedObject;
[Microsoft.SharePoint.Client.Taxonomy.TaxonomyField]$taxonomyField

Это работает?

У меня нет доступа к SharePoint, но так можно выполнять приведение в PowerShell.

PS C:\> $taxField = 10
PS C:\> [String]$taxField
10
Другие вопросы по тегам