0
我正在使用T4Scaffolding創建自定義腳手架。我用下面的PS代碼,以獲得我的項目的所有域對象的列表:T4 PowerShell陣列序列化錯誤
# List of all domain classes. Get all top level files/folders in the project | drill down to Models folder | Enumerate ProjectItems | Where Name ends with .cs | Select name truncating .cs, pluralized name
$domainClasses = (Get-Project "Domain").ProjectItems | Where { $_.Name -eq "Models" } | ForEach { $_.ProjectItems } | Where { $_.Name.EndsWith('.cs') } | Select @{ Name = 'Name'; Expression={ $_.Name.SubString(0,$_.Name.Length - 3) } }, @{ Name = 'Plural'; Expression={ Get-PluralizedWord $_.Name.SubString(0,$_.Name.Length - 3) } }
if (!$domainClasses) { $domainClasses = @() }
然後我調用Add-ProjectItemViaTemplate方法是這樣的:
Add-ProjectItemViaTemplate $outputPath -Template MyTemplate `
-Model @{ DomainClasses=[Array]$domainClasses } `
-SuccessMessage "Added Domain output at {0}" `
-TemplateFolders $TemplateFolders -Project $DomainProjectName -CodeLanguage $CodeLanguage -Force:$Force
我出現以下情況例外,當我運行sacffold:
System.Runtime.Serialization.SerializationException: Type 'System.Management.Automation.PSCustomObject' in assembly 'System.Management.Automation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' is not marked as serializable.
問題似乎是$ domainClasses變量由於某種原因無法序列化。我究竟做錯了什麼?