現在、当社のアプリケーションとグラブインボイスの別のものに接続するアプリケーション(Windowsサービス)があります。請求書にはフッター/ヘッダーフィールド用のRTFフィールドがあります。リッチテキスト形式からプレーンテキスト問題への変換
public static string ConvertFromRTFToPlainText(string rtfString)
{
if (rtfString == null)
return null;
System.Windows.Forms.RichTextBox rtBox = new System.Windows.Forms.RichTextBox();
if (rtfString.StartsWith("{\\rtf1"))
rtBox.Rtf = rtfString;
else
rtBox.Text = rtfString;
return rtBox.Text;
}
これは、ほとんどの部分が、いくつかの例(1つの特定のクライアントが毎回それを取得します)私はこの例外を取得してきました:私たちはデータをつかむときRTFは、次のコードをプレーンテキストに変換され
Exception Message:Error creating window handle.
Stack trace:
at System.Windows.Forms.NativeWindow.CreateHandle(CreateParams cp)
at System.Windows.Forms.Control.CreateHandle()
at System.Windows.Forms.TextBoxBase.CreateHandle()
at System.Windows.Forms.RichTextBox.set_Rtf(String value)
at SmartTrade.Common.API.Tools.RTFHelperUtility.ConvertFromRTFToPlainText(String rtfString)
at SmartTrade.Desktop.Proxy.API.ObjectMapper.InvoiceObjectMapper.CovertToAPIInvoice(Invoice domainInvoice)
これがなぜ起こっているのか、それを回避する方法についてのお手伝いがあれば、大歓迎です。
を編集してください。説明のためにJeremyに感謝します。私はRTF変換の代替案を提案しています。
サービスからのウィンドウコントロール(System.Windows.Formsのもの)を使用するとは思われません。それは、クローゼットのどこかのヘッドレスボックスで実行されているかもしれません。 – Thomas
ありがとうThomas、はい私はこれを認識していますが、リッチテキスト変換のための信頼できる代替手段の提案はありますか? –