我有一個應用程序生成帶有內容控件的Open XML文檔。使用簽名ID打開XML文檔ContentControls問題
創建一個新的內容控制我使用Interop和方法ContentControls.Add
。此方法返回添加的內容控件的實例。
我有一些邏輯,保存內容控制的id以後引用它,但在一些計算機中,我一直有一個奇怪的問題。
當我訪問我剛創建的內容控件的ID屬性時,它返回一個帶有數字ID的字符串,問題是當這個值太大時,在我保存文檔後,如果我通過所生成的文檔中的document.xml,<w:sdtPr/>
元素的<w:id/>
元素具有負值,這是從生成的控件的Id
屬性獲得的值的已簽名等效項。
例如:
var contentControl = ContentControls.Add(...);
var contentControlId = contentControl.ID;
// the value of contentControlId is "3440157266"
如果我保存文檔,並在Package Explorer中打開它,內容控件的Id
是「-854810030」,而不是「3440157266」。
有什麼我想通了,是這樣的:
((int)uint.Parse("3440157266")).ToString() returns "-854810030"
爲什麼發生這種情況的任何想法?此問題很難複製,因爲我不控制生成的控件的Id
,Id
是由Interop庫自動生成的。