Oluşturduğum bir PSObject öğesinin varsayılan metin oluşturmayı ayarlayabilmek istiyorum.Yerel olarak oluşturulan bir PSObject öğesinde varsayılan ToString() nasıl ayarlanır?
new-object psobject -property @{ name = 'bob'; job = 'janitor' }
anda bu çıkışı: Örneğin, ben bu kodu istiyorum
name job
---- ---
bob janitor
yerine çıkışını bu:
name job
---- ---
bob he is a janitor, he is
yani
{ 'he is a {0}, he is' -f $job }
Ben türü için bazı C# ile bir add-type
yapmanız gerekmez mı ki: sadece bunu yapar PSObject en ToString() için komut bloğunu takmak? Umarım değildir. Çok sayıda yerel psobject yapıyorum ve çıkışlarını daha güzel hale getirmeye yardımcı olmak için üzerlerine serpinti yapmak istiyorum, ancak çok fazla kod varsa muhtemelen buna değmeyecek.
$pso = new-object psobject -property @{ name = 'bob'; job = 'janitor' }
$pso | add-member scriptmethod tostring { 'he is a {0}, he is' -f $this.job } -force
$pso.tostring()
Vay gerçekten basit olmasıdır: – scobi