このアップグレードには、いくつかの高リスクなパブリック API 変更が含まれています。最もリスクが高い項目は DocumentObjectType 列挙型の全面的な再番号付けです。再コンパイルしない場合、サイレントな動作エラーを引き起こします。
MissingMethodException、TypeLoadException、または列挙定数がインライン化されるため、誤った数値のサイレント使用が発生します。string から int に変更され、コンストラクタ、Id、コレクションの検索/インデクサ、および Paragraph.AppendPermStart/End に影響します。SDTContent/SDTInlineContent が削除され、SDT Row/Cell が TableRow/TableCell でなくなり、大量のテーブル機能が失われます。DocumentObjectCollection が具象クラスになり基底クラスが変更され、DocumentSubsetCollection が削除され、複数のコレクションで基底クラスが変更され、Add の戻り値が int から void に変更されます。ChildObjects/FirstChild/LastChild/GetIndex が DocumentObject から CompositeDocumentObject に移動します。508 → 507(+8 / -9)、パブリックメンバー 5460 → 5527(+178 / -111 / 約97)。67 の型が合計 250 の実効メンバースロットを失い、重複排除後 90 の一意なシグネチャになります。114 の型にメタデータ変更があります。| 項目 | 14.9.11 | 14.10.9 |
|---|---|---|
| アセンブリ | Spire.Doc.dll | Spire.Doc.dll |
| パス | E:\packges\netdll\spire.doc_14.9.11\BIN\NET4.6\Spire.Doc.dll | E:\packges\netdll\spire.doc_14.10.6\BIN\NET4.6\Spire.Doc.dll |
| AssemblyVersion | 14.9.11.0 | 14.10.9.0 |
| FileVersion | 14.9.11.3046 | 14.10.9.3046 |
| ファイルサイズ | 20,976,616 バイト | 21,020,672 バイト(+44,056) |
| SHA256 | 9bc4566b89b5cb1abe82a9fcbb726ce20a2edfd0b7b2f6657e1b68b6bf35f1e5 | 5a9ba3712321fcc3f91b1273927b4714933a726ffce1cbe6e6b4f148ee6cd0a3 |
| 公開キートークン | 663f351905198cb3 | 663f351905198cb3(同じ厳密名) |
| XML ドキュメント | 1,215,855 バイト | 1,266,435 バイト(+50,580) |
両バージョンの参照アセンブリリストは同一です(HarfBuzzSharp、mscorlib、System、System.Core、System.Data、System.Drawing、System.Web、System.Windows.Forms、System.Xml)。アセンブリ依存関係の追加・削除はありません。
注意:アセンブリバージョンが変更されています。.NET Framework の厳密名バインドは自動的に上位バージョンを受け入れないため、
bindingRedirectがない場合、古いアプリケーションは読み込み時に失敗する可能性があります。
| 指標 | 14.9.11 | 14.10.9 | 変更 |
|---|---|---|---|
| パブリック型 | 508 | 507 | +8 / -9 |
| パブリックメンバー(DeclaredOnly) | 5460 | 5527 | +178 / -111 / 約97 |
| 追加された型 | — | 8 | 付録 A 参照 |
| 削除された型 | 9 | — | 付録 B 参照 |
| 追加されたメンバー | — | 178 | 37 は新しい型に導入、141 は既存型に追加 |
| 削除されたメンバー | 111 | — | 28 は型と共に削除、83 は存続する型 |
| うち:直接宣言された削除 | — | 54 | 新しいバージョンで型も祖先も提供しないもの |
| うち:継承により依然到達可能 | — | 29 | 基底クラスに移動;うち 2 つはシグネチャ変更 |
| 変更されたメンバー | — | 97 | 60 列挙値 + 37 非列挙変更 |
| 失われた実効メンバーサーフェス | — | 250 スロット / 67 型 | 重複排除後 90 の一意なシグネチャ |
| 獲得した実効メンバーサーフェス | — | 917 スロット / 112 型 | 主に新しい基底クラス/新しいインターフェースによる |
| 型メタデータ変更 | — | 114 | 基底クラス、インターフェース、抽象性など |
| XML docId 一致率 | 77.8% | 77.7% | 相互検証のみに使用;結論には影響しない |
カウント規約:
BindingFlags.Public | DeclaredOnly でエクスポートされたメンバーを指し、継承メンバーは除外されます。コンストラクタはパブリックコンストラクタのみカウントされます。DocumentObjectType 列挙型の全面的な再番号付け(最高リスク:サイレントエラー)旧バージョンの 64 定数、新バージョンでは 62:SDT コンテンツ定数 4 つが削除、SDT Mark 定数 2 つが追加され、ほぼすべての定数の数値が変更されました。
完全なマッピングテーブル(変更されたエントリのみ記載)
| メンバー | 旧値 | 新値 | ステータス |
|---|---|---|---|
| Document | 0 | 1 | 値変更 |
| Section | 1 | 2 | 値変更 |
| Body | 2 | 3 | 値変更 |
| HeaderFooter | 3 | 4 | 値変更 |
| Paragraph | 4 | 5 | 値変更 |
| StructureDocumentTag | 5 | 6 | 値変更 |
| StructureDocumentTagInline | 6 | 9 | 値変更 |
| StructureDocumentTagMarkStart | — | 7 | 追加 |
| StructureDocumentTagRow | 7 | 10 | 値変更 |
| StructureDocumentTagCell | 8 | 11 | 値変更 |
| StructureDocumentTagMarkEnd | — | 8 | 追加 |
| SDTBlockContent | 9 | — | 削除 |
| SDTInlineContent | 10 | — | 削除 |
| SDTRowContent | 11 | — | 削除 |
| SDTCellContent | 12 | — | 削除 |
| Table | 13 | 12 | 値変更 |
| TableRow | 14 | 13 | 値変更 |
| TableCell | 15 | 14 | 値変更 |
| TextRange | 16 | 15 | 値変更 |
| Picture | 17 | 16 | 値変更 |
| FieldStart | 18 | 17 | 値変更 |
| Field | 19 | 18 | 値変更 |
| FieldMark | 20 | 19 | 値変更 |
| FieldSeparator | 21 | 20 | 値変更 |
| FieldEnd | 22 | 21 | 値変更 |
| MergeField | 23 | 22 | 値変更 |
| SeqField | 24 | 23 | 値変更 |
| EmbededField | 25 | 24 | 値変更 |
| ControlField | 26 | 25 | 値変更 |
| TextFormField | 27 | 26 | 値変更 |
| DropDownFormField | 28 | 27 | 値変更 |
| CheckBox | 29 | 28 | 値変更 |
| BookmarkStart | 30 | 29 | 値変更 |
| BookmarkEnd | 31 | 30 | 値変更 |
| MoveFromRangeStart | 32 | 31 | 値変更 |
| MoveFromRangeEnd | 33 | 32 | 値変更 |
| MoveToRangeStart | 34 | 33 | 値変更 |
| MoveToRangeEnd | 35 | 34 | 値変更 |
| PermissionStart | 36 | 35 | 値変更 |
| PermissionEnd | 37 | 36 | 値変更 |
| Shape | 38 | 37 | 値変更 |
| ShapeGroup | 39 | 38 | 値変更 |
| ShapeLine | 40 | 39 | 値変更 |
| ShapePath | 41 | 40 | 値変更 |
| ShapeRect | 42 | 41 | 値変更 |
| Comment | 43 | 42 | 値変更 |
| Footnote | 44 | 43 | 値変更 |
| TextBox | 45 | 44 | 値変更 |
| Break | 46 | 45 | 値変更 |
| Symbol | 47 | 46 | 値変更 |
| TOC | 48 | 47 | 値変更 |
| XmlParaItem | 49 | 48 | 値変更 |
| Undefined | 50 | -2 | 値変更 |
| CommentMark | 51 | 49 | 値変更 |
| OleObject | 52 | 50 | 値変更 |
| CustomXml | 53 | 51 | 値変更 |
| SmartTag | 54 | 52 | 値変更 |
| OfficeMath | 55 | 53 | 値変更 |
| System | 56 | -1 | 値変更 |
| Ruby | 57 | 54 | 値変更 |
| SubDocument | 58 | 55 | 値変更 |
| SpecialChar | 59 | 56 | 値変更 |
| GlossaryDocument | 60 | 57 | 値変更 |
| BuildingBlock | 61 | 58 | 値変更 |
| FormField | 62 | 59 | 値変更 |
| Any | 63 | 0 | 値変更 |
旧バージョンの完全な値シーケンス
Document=0, Section=1, Body=2, HeaderFooter=3, Paragraph=4, StructureDocumentTag=5, StructureDocumentTagInline=6, StructureDocumentTagRow=7, StructureDocumentTagCell=8, SDTBlockContent=9, SDTInlineContent=10, SDTRowContent=11, SDTCellContent=12, Table=13, TableRow=14, TableCell=15, TextRange=16, Picture=17, FieldStart=18, Field=19, FieldMark=20, FieldSeparator=21, FieldEnd=22, MergeField=23, SeqField=24, EmbededField=25, ControlField=26, TextFormField=27, DropDownFormField=28, CheckBox=29, BookmarkStart=30, BookmarkEnd=31, MoveFromRangeStart=32, MoveFromRangeEnd=33, MoveToRangeStart=34, MoveToRangeEnd=35, PermissionStart=36, PermissionEnd=37, Shape=38, ShapeGroup=39, ShapeLine=40, ShapePath=41, ShapeRect=42, Comment=43, Footnote=44, TextBox=45, Break=46, Symbol=47, TOC=48, XmlParaItem=49, Undefined=50, CommentMark=51, OleObject=52, CustomXml=53, SmartTag=54, OfficeMath=55, System=56, Ruby=57, SubDocument=58, SpecialChar=59, GlossaryDocument=60, BuildingBlock=61, FormField=62, Any=63
新バージョンの完全な値シーケンス
Undefined=-2, System=-1, Any=0, Document=1, Section=2, Body=3, HeaderFooter=4, Paragraph=5, StructureDocumentTag=6, StructureDocumentTagMarkStart=7, StructureDocumentTagMarkEnd=8, StructureDocumentTagInline=9, StructureDocumentTagRow=10, StructureDocumentTagCell=11, Table=12, TableRow=13, TableCell=14, TextRange=15, Picture=16, FieldStart=17, Field=18, FieldMark=19, FieldSeparator=20, FieldEnd=21, MergeField=22, SeqField=23, EmbededField=24, ControlField=25, TextFormField=26, DropDownFormField=27, CheckBox=28, BookmarkStart=29, BookmarkEnd=30, MoveFromRangeStart=31, MoveFromRangeEnd=32, MoveToRangeStart=33, MoveToRangeEnd=34, PermissionStart=35, PermissionEnd=36, Shape=37, ShapeGroup=38, ShapeLine=39, ShapePath=40, ShapeRect=41, Comment=42, Footnote=43, TextBox=44, Break=45, Symbol=46, TOC=47, XmlParaItem=48, CommentMark=49, OleObject=50, CustomXml=51, SmartTag=52, OfficeMath=53, Ruby=54, SubDocument=55, SpecialChar=56, GlossaryDocument=57, BuildingBlock=58, FormField=59
これが最高リスクである理由:C# コンパイラは const 列挙値を呼び出しアセンブリにインライン化します。既存のアセンブリは実行時に新しい DLL の列挙値を再読み込みせず、コンパイル時の古い数値を使い続けます。例えば:
| 古いコードの定数(旧値) | 新バージョンでのその値の意味 | 結果 |
|---|---|---|
| Document (0) | Any (0) | 文書ノードが任意ノードとして扱われる |
| Body (2) | Section (2) | Body がセクションとして扱われる |
| Paragraph (4) | HeaderFooter (4) | 段落がヘッダー/フッターとして扱われる |
| StructureDocumentTag (5) | Paragraph (5) | SDT が段落として扱われる |
| Table (13) | TableRow (13) | テーブルが行として扱われる |
| TableCell (15) | TextRange (15) | セルがテキスト範囲として扱われる |
| Field (19) | FieldMark (19) | フィールドがフィールドマークとして扱われる |
| PermissionStart (36) | PermissionEnd (36) | 権限の開始/終了が入れ替わる |
| Shape (38) | ShapeGroup (38) | 図形が図形グループとして扱われる |
| Comment (43) | Footnote (43) | コメントが脚注として扱われる |
| Break (46) | Symbol (46) | 改行が記号として扱われる |
| Undefined (50) | OleObject (50) | 未定義値が OLE オブジェクトとして扱われる |
| System (56) | SpecialChar (56) | システムノードが特殊文字として扱われる |
| Any (63) | 定義なし(新列挙の最大値は 59) | 範囲外 / 未定義動作 |
さらに、default(DocumentObjectType) は Document ではなく Any を意味するようになりました。デフォルト値、数値比較、シリアライズ/デシリアライズ、データベース保存、キャッシュに依存するコードは移行が必要です。
修正:
(DocumentObjectType)4 など)を削除し、定数名を使用します。switch ステートメントが新しい値をカバーしていることを確認します。旧値 63(Any)は新バージョンに対応するメンバーがありません。string から int に変更| 型/メンバー | 14.9.11 | 14.10.9 | 影響 |
|---|---|---|---|
| Permission.Id | string | int | 戻り値の型変更;バイナリとソースの両方を破壊 |
| Permission.EditorGroup | get | get/set | セッター追加;互換 |
| Permission コンストラクタ | Permission(PermissionStart), Permission(PermissionStart, PermissionEnd) | すべて削除 | ソースとバイナリを破壊 |
| Permission.Editor | — | string get/set | 追加 |
| Permission.Remove() | — | void | 追加 |
| PermissionStart コンストラクタ | (IDocument, string id) | (IDocument, int id) | パラメータ型変更 |
| PermissionStart.Id | string | int | 戻り値の型変更 |
| PermissionStart.Permission | — | Permission get | 追加;旧コンストラクタを置き換え |
| PermissionEnd コンストラクタ | (IDocument, string id) | (IDocument, int id) | パラメータ型変更 |
| PermissionEnd.Id | string | int | 戻り値の型変更 |
| PermissionEnd.PermissionStart | — | PermissionStart get | 追加 |
| PermissionCollection.FindById | FindById(string) | FindById(int) | パラメータ型変更 |
| PermissionCollection インデクサ | this[string id] | 削除 | this[int index] / FindById(int) を使用 |
| PermissionCollection.Remove | Remove(Permission) | Remove(Permission) + Remove(int id) | ID による削除を追加 |
| PermissionCollection.Count/GetEnumerator | — | 追加 | 追加 |
| Paragraph.AppendPermStart/End | (string id) | (int id) | パラメータ型変更 |
移行例:
// 古いコード
var start = new PermissionStart(doc, "editor-1");
var permission = new Permission(start);
string id = permission.Id;
var found = doc.Permissions.FindById("editor-1");
var byKey = doc.Permissions["editor-1"]; // 旧インデクサ
doc.Permissions.Remove(byKey); // 旧オブジェクトによる削除
// 新しいコード
var start = new PermissionStart(doc, 1);
var permission = start.Permission; // パブリックコンストラクタはもうない
int id = permission.Id;
permission.Editor = "editor-1"; // 新しく追加された文字列識別子
var found = doc.Permissions.FindById(1);
doc.Permissions.Remove(1); // 新しく追加された ID による削除
ビジネス層が文字列を権限キーとして使用していた場合、新しい整数 ID 割り当てスキーム(データベースの ID 列や文書内のシーケンス番号など)を決定し、PermissionStart、PermissionEnd、Permission がすべて同じ整数を使用するようにする必要があります。
削除された型:Spire.Doc.Documents.SDTContent(基底クラス Body)、Spire.Doc.Documents.SDTInlineContent(基底クラス DocumentObject)。
追加された型:StructureDocumentTagMarkStart、StructureDocumentTagMarkEnd(両方とも ParagraphBase を直接継承し、DocumentObjectType のみを公開)。
構造変更:
| 型 | 旧基底クラス | 新基底クラス | 主な結果 |
|---|---|---|---|
| StructureDocumentTag | BodyRegion | BodyRegion(変更なし) | SDTContent プロパティ削除;Body(IBody)追加 |
| StructureDocumentTagInline | ParagraphBase | CompositeDocumentObject | SDTContent 削除;Items/Text/TextNodes/CharacterFormat/リビジョンプロパティ追加 |
| StructureDocumentTagRow | TableRow | CompositeDocumentObject | TableRow でなくなる;Cells/RowFormat/Height/HeightType/Hidden/IsHeader/AddCell/GetRowIndex などを失う |
| StructureDocumentTagCell | TableCell | CompositeDocumentObject | TableCell でなくなる;CellFormat/Width/Scaling/GridSpan/Paragraphs/Tables/FormFields/OwnerRow/SplitCell を含む 27 の実効メンバーを失う |
Row の構築方法:StructureDocumentTagRow(Table ownerTable) が削除され、StructureDocumentTagRow(Document doc) が追加されました。
Cell の構築方法:StructureDocumentTagCell(TableRow ownerRow) が削除され、StructureDocumentTagCell(Document doc) が追加されました。
影響:SDT の行/セルを通常のテーブル行/セルとして使用するコード(スタイリング、行の高さ、セル幅、結合、分割、XHTML 挿入、Table.Rows/Table.Cells の反復処理など)は、コンパイルに失敗するか、実行時にテーブル構造として認識されなくなります。新バージョンではこれらは「子ノードを持つ複合オブジェクト」になり、コンテンツは CompositeDocumentObject の DOM API(ChildObjects、AppendChild、InsertBefore など)を通じてアクセスされます。これはセマンティックレベルの再構築であり、型キャストだけでは解決できません。
移行例:
// 古いコード
StructureDocumentTag sdt = new StructureDocumentTag(doc);
SDTContent content = sdt.SDTContent;
content.AddParagraph();
// 新しいコード
StructureDocumentTag sdt = new StructureDocumentTag(doc);
IBody body = sdt.Body;
body.AddParagraph();
// 古いコード:SDT セルを TableCell として使用
StructureDocumentTagCell cell = new StructureDocumentTagCell(row);
cell.CellFormat.Width = 100;
// 新しいコード:CellFormat はもうない;CompositeDocumentObject の子/子コンテンツ API を使用
StructureDocumentTagCell cell = new StructureDocumentTagCell(doc);
// 具体的なセルの書式設定は子ノードを通じて行うか、文書構造を再設計する必要がある;回帰テストが必要
主要な変更:
DocumentObjectCollection が abstract から非抽象に変更され、基底クラスが DocumentItemCollectionBase から OwnerHolder に変更されました。パブリックコンストラクタは 0 個(エクスポートにパブリックコンストラクタが含まれない)で、主にプロパティを通じて取得されます。DocumentSubsetCollection とそのネストされた SubSetEnumerator が削除されました。DocumentObjectCollection.Add の戻り値の型が int から void に変更されました。DocumentObjectCollection に DocumentObject を受け取る強く型付けされたオーバーロードが追加されました。既存の IDocumentObject オーバーロードは保持されますが、パラメータ名が documentObject に変更されます。SectionCollection にパブリックコンストラクタがなくなりました。IWSectionCollection が削除され、空のマーカーインターフェース ISectionCollection に置き換えられました。基底クラス変更の概要(コレクション関連):
| 型 | 旧基底クラス/状態 | 新基底クラス/状態 | 結果 |
|---|---|---|---|
| DocumentObjectCollection | DocumentItemCollectionBase(抽象) | OwnerHolder(非抽象) | 抽象性変更;Add が void を返す |
| DocumentSubsetCollection | OwnerHolder | 型削除 | Paragraph/Table コレクションの旧基底クラス |
| CommentsCollection | DocumentItemCollectionBase | DocumentObjectCollection | Count/Add/Remove/ToArray などを獲得 |
| FieldCollection | DocumentItemCollectionBase | DocumentObjectCollection | コレクション操作を獲得;ToArray 追加 |
| FormFieldCollection | DocumentItemCollectionBase | DocumentObjectCollection | コレクション操作を獲得;ToArray 追加 |
| TextBoxCollection | DocumentItemCollectionBase | DocumentObjectCollection | インデクサの戻り値の型が ShapeObject に変更 |
| ParagraphCollection | DocumentSubsetCollection | DocumentObjectCollection | コンストラクタパラメータが CompositeDocumentObject に変更;Add が void を返す |
| TableCollection | DocumentSubsetCollection | DocumentObjectCollection | コンストラクタパラメータが CompositeDocumentObject に変更;Add が void を返す |
| BookmarkCollection | DocumentItemCollectionBase | OwnerHolder | Count/GetEnumerator/Remove(string)/ResetBookmarkCache を獲得 |
| PermissionCollection | DocumentItemCollectionBase | OwnerHolder | FindById(int)/Remove(int)/Count/GetEnumerator |
| ShapeItemCollection | DocumentObjectCollection | DocumentItemCollectionBase | Add/Clear/Contains/IndexOf/Insert/Remove/RemoveAt/FirstItem/Item/LastItem/Owner を失う — 合計 11 項目 |
| HeadersFooters | OwnerHolder | DocumentObjectCollection | Count/Add/Remove/ToArray と合計 19 項目を獲得 |
Add の戻り値の型が int から void に変更されたメンバー(バイナリ破壊):
DocumentObjectCollection.Add(IDocumentObject)ParagraphCollection.Add(IParagraph)TableCollection.Add(ITable)IParagraphCollection.Add(IParagraph)ITableCollection.Add(ITable)TableCollection.Insert(int, ITable) も int から void に変更移行例:
// 古いコード:戻り値のインデックスに依存
int index = body.ChildObjects.Add(paragraph);
int index2 = body.Paragraphs.Add(paragraph);
// 新しいコード:Add は void を返す;インデックスが必要な場合は自分で IndexOf を呼び出す
body.ChildObjects.Add(paragraph);
int index = body.ChildObjects.IndexOf(paragraph);
body.Paragraphs.Add(paragraph);
int index2 = body.Paragraphs.IndexOf(paragraph);
// 古いコード:強く型付けされたオーバーロード
row.Cells.Add(cell);
table.Rows.Insert(0, row);
// 新しいコード:DocumentObject オーバーロードを使用(void を返す)
row.Cells.Add((DocumentObject)cell);
table.Rows.Insert(0, (DocumentObject)row);
基底クラスの変更は、継承メンバー、is/as キャスト、オーバーライド、シリアライズ、バイナリメンバー解決に同時に影響します。
| 型 | 旧基底クラス | 新基底クラス |
|---|---|---|
| Spire.Doc.Collections.BookmarkCollection | Spire.Doc.Collections.DocumentItemCollectionBase | Spire.Doc.OwnerHolder |
| Spire.Doc.Collections.CommentsCollection | Spire.Doc.Collections.DocumentItemCollectionBase | Spire.Doc.Collections.DocumentObjectCollection |
| Spire.Doc.Collections.DocumentObjectCollection | Spire.Doc.Collections.DocumentItemCollectionBase | Spire.Doc.OwnerHolder |
| Spire.Doc.Collections.FieldCollection | Spire.Doc.Collections.DocumentItemCollectionBase | Spire.Doc.Collections.DocumentObjectCollection |
| Spire.Doc.Collections.FormFieldCollection | Spire.Doc.Collections.DocumentItemCollectionBase | Spire.Doc.Collections.DocumentObjectCollection |
| Spire.Doc.Collections.ParagraphCollection | Spire.Doc.Collections.DocumentSubsetCollection | Spire.Doc.Collections.DocumentObjectCollection |
| Spire.Doc.Collections.PermissionCollection | Spire.Doc.Collections.DocumentItemCollectionBase | Spire.Doc.OwnerHolder |
| Spire.Doc.Collections.ShapeItemCollection | Spire.Doc.Collections.DocumentObjectCollection | Spire.Doc.Collections.DocumentItemCollectionBase |
| Spire.Doc.Collections.TableCollection | Spire.Doc.Collections.DocumentSubsetCollection | Spire.Doc.Collections.DocumentObjectCollection |
| Spire.Doc.Collections.TextBoxCollection | Spire.Doc.Collections.DocumentItemCollectionBase | Spire.Doc.Collections.DocumentObjectCollection |
| Spire.Doc.Documents.StructureDocumentTagCell | Spire.Doc.TableCell | Spire.Doc.CompositeDocumentObject |
| Spire.Doc.Documents.StructureDocumentTagInline | Spire.Doc.Fields.ParagraphBase | Spire.Doc.CompositeDocumentObject |
| Spire.Doc.Documents.StructureDocumentTagRow | Spire.Doc.TableRow | Spire.Doc.CompositeDocumentObject |
| Spire.Doc.Fields.Comment | Spire.Doc.Fields.ParagraphBase | Spire.Doc.Fields.InlineBody |
| Spire.Doc.Fields.Footnote | Spire.Doc.Fields.ParagraphBase | Spire.Doc.Fields.InlineBody |
| Spire.Doc.Fields.OMath.OfficeMath | Spire.Doc.Fields.ParagraphBase | Spire.Doc.CompositeDocumentObject |
| Spire.Doc.Fields.Shapes.ShapeBase | Spire.Doc.Fields.ParagraphBase | Spire.Doc.CompositeDocumentObject |
| Spire.Doc.Fields.TableOfContent | Spire.Doc.Fields.ParagraphBase | Spire.Doc.Fields.Field |
| Spire.Doc.HeadersFooters | Spire.Doc.OwnerHolder | Spire.Doc.Collections.DocumentObjectCollection |
主な影響:
Comment、Footnote → InlineBody:両方とも「インラインボディ」になり、AddParagraph/AddTable、CharacterFormat、リビジョンプロパティを持ちますが、ParagraphBase に由来する一部の機能(ApplyCharacterFormat、ToString(string) など)を失います。OfficeMath、ShapeBase → CompositeDocumentObject:図形/数式が子ノードとボディ機能を持つようになりますが、ParagraphBase を継承しなくなります。TableOfContent → Field:TOC がフィールドになり、IField/ITextRange とフィールド関連機能を獲得します。StructureDocumentTagRow/Cell → CompositeDocumentObject:テーブル行/セルでなくなりました(3.3 参照)。ShapeItemCollection の基底クラスが「逆方向」に DocumentItemCollectionBase に変更され、コレクション操作を失います(3.4 参照)。以下のメンバーが DocumentObject から CompositeDocumentObject に下方移動します:
ChildObjectsFirstChildLastChildGetIndex(IDocumentObject)結果として、複合型(Body、Section、Table、TableRow、TableCell、Document、Paragraph、Comment、Footnote、図形など)は新しい基底クラスを通じて引き続きアクセスできますが、DocumentObject 自体と 24 の非複合リーフ型(BookmarkStart/End、Break、Field、TextRange、Symbol、PermissionStart/End、透かし型など)はこれらのメンバーを公開しなくなります。
| メンバーシグネチャ | 影響を受ける型の数 |
|---|---|
| method|ToString(System.String) | 48 |
| method|GetIndex(Spire.Doc.Interface.IDocumentObject) | 24 |
| property|ChildObjects() | 24 |
| property|FirstChild() | 24 |
| property|LastChild() | 24 |
| method|ApplyCharacterFormat(Spire.Doc.Formatting.CharacterFormat) | 11 |
| method|NameToBuiltIn(System.String) | 4 |
| method|EnsureMinimum() | 3 |
| ctor|(Spire.Doc.Collections.BodyRegionCollection) | 2 |
| ctor|(Spire.Doc.Document) | 2 |
説明:ToString(string) が 48 の型から消えるのは、DocumentObject 基底クラスから削除されたためです。ApplyCharacterFormat が 11 の型から消えるのは、それらの型が ParagraphBase を継承しなくなったためです(ParagraphBase 自体はメソッドを保持しています)。
バイナリへの影響:基底クラスに上方移動するメンバーは通常依然として解決されます(CLR は基底クラスチェーンを遡ります)。派生クラスに下方移動するメンバーは異なります。古い IL のメンバー参照は通常、元の宣言型 DocumentObject を指し、CLR は派生クラスを検索しないため、DLL を置き換えた後、MissingMethodException が発生する可能性が非常に高いです。したがって、「新しい基底クラスを通じて依然到達可能」というのは再コンパイルされたソースにのみ当てはまり、古いバイナリを安全にするものではありません。
| 型 | メンバー | 旧戻り値の型 | 新戻り値の型 |
|---|---|---|---|
| Spire.Doc.BodyRegion | Spire.Doc.Interface.IBody OwnerTextBody { get; } | Spire.Doc.Body | Spire.Doc.Interface.IBody |
| Spire.Doc.Collections.DocumentObjectCollection | System.Void Add(Spire.Doc.Interface.IDocumentObject documentObject) | System.Int32 | System.Void |
| Spire.Doc.Collections.ParagraphCollection | override System.Void Add(Spire.Doc.Interface.IParagraph paragraph) | System.Int32 | System.Void |
| Spire.Doc.Collections.ParagraphItemCollection | Spire.Doc.Interface.IParagraphBase this[System.Int32 index] { get; } | Spire.Doc.Fields.ParagraphBase | Spire.Doc.Interface.IParagraphBase |
| Spire.Doc.Collections.TableCollection | override System.Void Add(Spire.Doc.Interface.ITable table) | System.Int32 | System.Void |
| Spire.Doc.Collections.TableCollection | System.Void Insert(System.Int32 index, Spire.Doc.Interface.ITable table) | System.Int32 | System.Void |
| Spire.Doc.Collections.TextBoxCollection | Spire.Doc.Fields.ShapeObject this[System.Int32 index] { get; } | Spire.Doc.Fields.TextBox | Spire.Doc.Fields.ShapeObject |
| Spire.Doc.Documents.Paragraph | Spire.Doc.Interface.IParagraphBase this[System.Int32 index] { get; } | Spire.Doc.Fields.ParagraphBase | Spire.Doc.Interface.IParagraphBase |
| Spire.Doc.Documents.TextBodySelection | Spire.Doc.Interface.IBody TextBody { get; } | Spire.Doc.Body | Spire.Doc.Interface.IBody |
| Spire.Doc.Document | Spire.Doc.Interface.IParagraphBase CreateParagraphItem(Spire.Doc.Documents.ParagraphItemType itemType) | Spire.Doc.Fields.ParagraphBase | Spire.Doc.Interface.IParagraphBase |
| Spire.Doc.Fields.Comment | Spire.Doc.Interface.IBody Body { get; } | Spire.Doc.Body | Spire.Doc.Interface.IBody |
| Spire.Doc.Fields.Footnote | Spire.Doc.Interface.IBody Body { get; } | Spire.Doc.Body | Spire.Doc.Interface.IBody |
| Spire.Doc.Fields.TextBox | Spire.Doc.Interface.IBody Body { get; } | Spire.Doc.Body | Spire.Doc.Interface.IBody |
| Spire.Doc.Interface.IParagraphCollection | System.Void Add(Spire.Doc.Interface.IParagraph paragraph) | System.Int32 | System.Void |
| Spire.Doc.Interface.IParagraph | Spire.Doc.Interface.IParagraphBase this[System.Int32 index] { get; } | Spire.Doc.Fields.ParagraphBase | Spire.Doc.Interface.IParagraphBase |
| Spire.Doc.Interface.ITableCollection | System.Void Add(Spire.Doc.Interface.ITable table) | System.Int32 | System.Void |
| Spire.Doc.Interface.ITextBox | Spire.Doc.Interface.IBody Body { get; } | Spire.Doc.Body | Spire.Doc.Interface.IBody |
| Spire.Doc.Pages.FixedLayoutColumn | Spire.Doc.Interface.IBody Body { get; } | Spire.Doc.Body | Spire.Doc.Interface.IBody |
| Spire.Doc.PermissionEnd | System.Int32 Id { get; } | System.String | System.Int32 |
| Spire.Doc.PermissionStart | System.Int32 Id { get; } | System.String | System.Int32 |
| Spire.Doc.Permission | System.Int32 Id { get; } | System.String | System.Int32 |
パターン概要:
Body → IBody(7 項目):BodyRegion.OwnerTextBody、Comment.Body、Footnote.Body、TextBox.Body、ITextBox.Body、FixedLayoutColumn.Body、TextBodySelection.TextBody。ParagraphBase → IParagraphBase(4 項目):ParagraphItemCollection インデクサ、Paragraph インデクサ、IParagraph インデクサ、Document.CreateParagraphItem。int → void(6 項目):コレクションの Add/Insert(3.4 参照)。string → int(3 項目):Permission/PermissionStart/PermissionEnd の Id。TextBox → ShapeObject(1 項目):TextBoxCollection インデクサ。DocPicture.Rotation(float → double;旧メンバーは同名の基底プロパティを隠していたが、新バージョンは ShapeBase から継承)と HeadersFooters.GetEnumerator(IEnumerator → IEnumerator<DocumentObject>)。これら 2 つも古いバイナリを破壊します。これらすべての変更は CLR メソッドシグネチャを変更します(戻り値の型はシグネチャの一部です)。古いバイナリは MissingMethodException を発生させ、ソースレベルでは通常、明示的なキャストまたはインターフェースへの切り替えが必要です。
削除された 9 つのパブリック型:
| 削除された型 | 種類 | メンバー数 | 基底クラス/備考 |
|---|---|---|---|
| Spire.Doc.Collections.DocumentObjectCollection+ChangeItems | デリゲート | 4 | System.MulticastDelegate |
| Spire.Doc.Collections.DocumentObjectCollection+ChangeItemsType | 列挙型 | 3 | System.Enum |
| Spire.Doc.Collections.DocumentSubsetCollection | クラス | 5 | Spire.Doc.OwnerHolder |
| Spire.Doc.Collections.DocumentSubsetCollection+SubSetEnumerator | クラス | 4 | System.Object |
| Spire.Doc.CompoundFile.IDocCloneable | インターフェース | 1 | — |
| Spire.Doc.Documents.IWSectionCollection | インターフェース | 3 | — |
| Spire.Doc.Documents.SDTContent | クラス | 1 | Spire.Doc.Body |
| Spire.Doc.Documents.SDTInlineContent | クラス | 5 | Spire.Doc.DocumentObject |
| Spire.Doc.Interface.ITextBoxItemCollection | インターフェース | 2 | — |
追加された 8 つのパブリック型:
| 追加された型 | 種類 | メンバー数 | 基底クラス/備考 |
|---|---|---|---|
| Spire.Doc.Collections.CommentRangeCollection | クラス | 8 | Spire.Doc.OwnerHolder |
| Spire.Doc.Collections.TextRangeCollection | クラス | 2 | Spire.Doc.Collections.DocumentObjectCollection |
| Spire.Doc.Documents.ISectionCollection | インターフェース | 0 | — |
| Spire.Doc.Documents.StructureDocumentTagMarkEnd | クラス | 1 | Spire.Doc.Fields.ParagraphBase |
| Spire.Doc.Documents.StructureDocumentTagMarkStart | クラス | 1 | Spire.Doc.Fields.ParagraphBase |
| Spire.Doc.Fields.InlineBody | クラス | 16 | Spire.Doc.CompositeDocumentObject |
| Spire.Doc.Formatting.Revisions.IRevisionTracking | インターフェース | 8 | — |
| Spire.Doc.Interface.IDocCloneable | インターフェース | 1 | — |
主なポイント:
Spire.Doc.CompoundFile.IDocCloneable → Spire.Doc.Interface.IDocCloneable。インターフェースの型 ID が変更されるため、古い名前空間を明示的に参照するコードはコンパイルに失敗し、完全名によるリフレクション検索も失敗します。IWSectionCollection → ISectionCollection。新しいインターフェースは空のマーカーインターフェース(宣言メンバー 0)です。メンバーは ICollectionBase/IDocumentObjectCollection から提供されます。SectionCollection は新しいインターフェースを実装します。ITextBoxItemCollection は旧バージョンでパブリック実装者がなく、パブリックメンバーシグネチャにも現れなかったため、実用的な影響は非常に小さいですが、それでもパブリック型の削除です。DocumentObjectCollection+ChangeItems/ChangeItemsType はコレクション再構築と共に削除されたパブリックネストデリゲート/列挙型です。対応するパブリックイベントメンバーが見つからないため、影響は限定的です。| 型 | 旧コンストラクタ | 新コンストラクタ |
|---|---|---|
| Bookmark | Bookmark(BookmarkStart start) | 削除(2 パラメータコンストラクタは保持) |
| PermissionStart | (IDocument, string id) | (IDocument, int id) |
| PermissionEnd | (IDocument, string id) | (IDocument, int id) |
| StructureDocumentTagRow | (Table ownerTable) | (Document doc) |
| StructureDocumentTagCell | (TableRow ownerRow) | (Document doc) |
| CellCollection | (TableRow owner) | (CompositeDocumentObject container) |
| RowCollection | (Table owner) | (CompositeDocumentObject container) |
| ParagraphCollection | (BodyRegionCollection bodyItems) | (CompositeDocumentObject ownerBody) |
| TableCollection | (BodyRegionCollection bodyItems) | (CompositeDocumentObject container) |
| CommentsCollection | (Document doc) | 削除 |
| SectionCollection | (Document doc) | 削除 |
| BodyRegionCollection | (Body body) | 削除 |
| SDTProperties | (DocumentObject owner) | 削除 |
| Permission | 2 つのパブリックコンストラクタ | すべて削除 |
| TextBodySelection | (ParagraphBase, ParagraphBase) | (IParagraphBase, IParagraphBase) |
パラメータ名の変更(名前付き引数のみに影響;ソースは通常互換):
DocumentObjectCollection.Add/Contains/IndexOf/Insert/Remove:entity → documentObjectBookmark(BookmarkStart, BookmarkEnd):start/end → bookmarkStart/bookmarkEndFormFieldCollection.ContainsName:itemName → formFieldNameCompositeDocumentObject.IndexOf:docObject → childこれらは古い型自体に宣言されていたメンバーで、新バージョンで削除されたものです。基底クラス変更により古い型が失う継承メンバーは除外されます。後者は実効メンバーサーフェス(67 型にわたる 250 スロット)にカウントされ、通常は ChildObjects、ToString(string)、ApplyCharacterFormat の連鎖的消失です。
完全なリストは付録 Dにあります。最も注意が必要な非連鎖項目:
| 型 | メンバー | 代替/備考 |
|---|---|---|
| Style/ListStyle/ParagraphStyle/TableStyle | static BuiltinStyle NameToBuiltIn(string) | 直接の代替なし |
| TextBodyPart | Copy(ParagraphBase, bool), PasteAfter(ParagraphBase) | IParagraphBase オーバーロードに切り替え |
| TextBodySelection | ctor(ParagraphBase, ParagraphBase) | IParagraphBase オーバーロードに切り替え |
| OfficeMath | ParentParagraph | OwnerParagraph に切り替え |
| Comment | Items, EnsureMinimum() | Items → CommentedItems;EnsureMinimum に直接の代替なし |
| Footnote | TextBody, EnsureMinimum() | Footnote 自体が IBody;EnsureMinimum に直接の代替なし |
| Paragraph | AppendPermStart(string), AppendPermEnd(string) | int オーバーロードに切り替え |
| DocumentObject | virtual ToString(string separator) | 直接の代替なし |
| SDT 型 | SDTContent プロパティ / SDT Row の Cells、RowFormat | 3.3 参照 |
| CommentsCollection | Counts(), Remove(Comment) | Count;Remove(DocumentObject)/Comment.Remove() |
| SectionCollection | Add(ISection), IndexOf(ISection) | DocumentObject オーバーロード |
| PermissionCollection | FindById(string), this[string] | FindById(int)/Remove(int) |
さらに 2 項目:旧宣言が同名の基底クラスメンバーに置き換えられるが、シグネチャが変更される
| 型 | 旧宣言 | 新バージョンでの継承元 | 変更 |
|---|---|---|---|
| DocPicture | System.Single Rotation { get; set; } | ShapeBase | float → double;旧メンバーは同名の基底プロパティを隠していた |
| HeadersFooters | override IEnumerator GetEnumerator() | DocumentObjectCollection | IEnumerator → IEnumerator<DocumentObject> |
旧バージョンでは DocPicture.Rotation が float メンバーで ShapeBase.Rotation(double)を隠していました。新バージョンではその隠蔽宣言が削除され、DocPicture.Rotation は double に解決されるようになりました。float に依存するソースは明示的なキャストが必要で、古いバイナリは戻り値の型の不一致で失敗します。
さらに、CellCollection/RowCollection の強く型付けされた Add/IndexOf/Insert/Remove は削除されましたが、基底クラス DocumentObjectCollection は依然として DocumentObject バージョンを提供します。ただし、ShapeItemCollection の 11 のコレクション機能には基底クラスのフォールバックがありません。
| 型 | メンバー | 14.9.11 | 14.10.9 | 互換性 |
|---|---|---|---|---|
| Bookmark | Name | get | get/set | セッター追加;互換 |
| Field | Separator | get | get/set | セッター追加;互換 |
| ShapeBase | Size | get | get/set | セッター追加;互換 |
| Permission | EditorGroup | get | get/set | セッター追加;互換 |
| Document | TextBoxes | get/set | get | セッター削除;破壊的 |
Document.TextBoxes のセッターが削除されました。テキストボックスコレクション全体を置き換える古いコードはコンパイルできなくなり、代わりに既存のコレクションに対して DocumentObjectCollection/TextBoxCollection メソッドを通じて追加/削除する必要があります。
以下の 4 つのメンバーに [Obsolete] が追加されました(IsError = false、警告のみ):
DocumentObjectCollection.Insert(int, IDocumentObject):Owner.InsertBefore/InsertAfter を推奨DocumentObjectCollection.RemoveAt(int):Owner.Remove(documentObject) または documentObject.Remove() を推奨ParagraphCollection.Insert(int, IParagraph):同上TableCollection.Insert(int, ITable):同上これは新バージョンの API の方向性を反映しています:コレクション自体を通じた追加/削除は徐々に CompositeDocumentObject の DOM ツリー操作に取って代わられています。
TableRow/TableCell に依存する走査、スタイリング、結合、分割、XHTML 挿入ロジックは再設計が必要です。Body は IBody を返し、AddParagraph/AddTable を直接呼び出せます。Comment.Items は CommentedItems になり、Footnote.TextBody は削除されます(Footnote 自体がボディテキストであるため)。TableOfContent の基底クラスが Field に変更され、フィールド更新と型チェックに影響する可能性があります。ShapeBase、OfficeMath が子ノード、ボディテキスト、リビジョン機能を持つようになります。DocPicture/TextBox/ShapeObject などが IBody を実装します。DocumentObjectCollection.Add はインデックスを返さなくなり、コレクション階層はより均一になりますが、特定の基底クラスや戻り値に依存するコードは影響を受けます。TextBox 以外の図形である可能性があります。直接 TextBox に代入する古いコードは失敗します。| 変更 | CLR レベルの結果 | 備考 |
|---|---|---|
| 列挙定数の再番号付け | 例外なし、サイレントエラー | const 値はインライン化;古い数値は新バージョンで異なる意味を持つ |
| 型の削除 | TypeLoadException / MissingMethodException | シグネチャが型を参照している場合、読み込みに失敗 |
| 基底クラスの変更 | InvalidCastException / MissingMethodException | 継承メンバーの解決とキャスト対象が変更 |
| 戻り値の型の変更 | MissingMethodException | 戻り値の型は CLR シグネチャの一部 |
| パラメータ型の変更(string→int) | MissingMethodException | シグネチャの不一致 |
| Add/Insert の戻り値 int→void | MissingMethodException | シグネチャの不一致 |
| メンバーが基底クラスに上方移動 | 通常解決される | CLR は基底クラスチェーンを遡る |
| メンバーが派生クラスに下方移動 | MissingMethodException の可能性が非常に高い | 古い IL は元の宣言型を参照;派生クラスは検索されない |
| 新しいインターフェース実装 | 互換 | 既存のメンバーシグネチャを変更しない |
| 新しいセッター | 互換 | 新しいメソッド |
| セッターの削除 | MissingMethodException (set_*) | 古い IL はセッター呼び出し時に失敗 |
| 新しい Obsolete | 互換 | コンパイル警告のみ |
| アセンブリバージョンの変更 | FileLoadException の可能性 | 厳密名バインドには bindingRedirect が必要 |
結論:bindingRedirect を構成してアセンブリを読み込めたとしても、上記のシグネチャ/継承の変更により初回使用時に例外が発生します。さらに列挙の問題は例外すら発生しない可能性があり、より有害です。
Add の戻り値の使用、基底クラス変更によるメンバーの不可視化、削除されたセッター。[Obsolete]。IParagraphBase/IBody/ShapeObject の戻り値、ISectionCollection インデクサ、TextBoxCollection インデクサ。すべてのソースがコンパイルできたとしても、以下の動作については回帰テストが必要です:
CommentedItems と旧 Items の違い。Add 後のインデックス、順序、イベント/キャッシュ動作。Count。DocumentObjectType 分岐。| 変更 | バイナリ | ソース | 動作 | 対応レベル |
|---|---|---|---|---|
| DocumentObjectType 再番号付け | サイレントエラー | 再コンパイル後 OK | 高 | P0 |
| Permission string→int | 破壊的 | 破壊的 | 高 | P0 |
| SDT Row/Cell の基底クラス変更 | 破壊的 | 破壊的 | 高 | P0 |
| 型の削除(9) | 破壊的 | 破壊的 | 高 | P0 |
| DocumentObjectCollection 再構築 | 破壊的 | 破壊的 | 中高 | P0 |
| 19 の基底クラス変更 | 破壊的 | 破壊的 | 高 | P0 |
| 戻り値の型の変更(21 項目) | 破壊的 | 破壊的 | 中 | P1 |
| Add/Insert int→void | 破壊的 | 破壊的 | 中 | P1 |
| メンバーの下方移動(ChildObjects など) | 破壊的の可能性が非常に高い | キャストが必要 | 中 | P1 |
| メンバーの上方移動(Shape プロパティなど) | 通常互換 | 互換 | 低 | P2 |
| 新しいセッター/インターフェース/型 | 互換 | 互換 | 低 | P2 |
| Obsolete マーカー | 互換 | 警告 | 低 | P2 |
| ステップ | アクション | 主な確認事項 |
|---|---|---|
| 1 | Spire.Doc を参照するすべてのプロジェクトを一律に再コンパイル | DLL を直接置き換えない;bindingRedirect を 14.10.9.0 に更新 |
| 2 | 永続化された DocumentObjectType 値を移行 | データベース、JSON、キャッシュ、設定ファイル;定数名でマッピング |
| 3 | Permission の文字列 ID → int | データモデル、権限範囲、FindById/インデクサ/削除 |
| 4 | コレクション API | Add の戻り値、強く型付けされたオーバーロード、基底クラス型、インデクサの戻り値の型 |
| 5 | SDT コード | SDTContent/Body、Row/Cell のテーブル機能、コンストラクタ |
| 6 | ChildObjects/GetIndex/ToString(separator) | CompositeDocumentObject にキャストするか、新しい DOM API に切り替え |
| 7 | IBody/IParagraphBase の戻り値の型 | 明示的なキャストまたはインターフェースへの切り替え |
| 8 | Comment/Footnote | CommentedItems、Footnote 自身の IBody、EnsureMinimum |
| 9 | 図形/数式 | ApplyCharacterFormat → CharacterFormat/ApplyStyle;Size セッター |
| 10 | 回帰テスト | SDT、権限、テーブル、コメント、脚注、TOC、ヘッダー/フッター、テキストボックス |
(1) 列挙チェック
// 再コンパイル後、数値ではなく定数名を使用
if (obj.DocumentObjectType == DocumentObjectType.Paragraph) { ... }
// 古い永続化数値を新しい列挙に移行する必要がある場合、まず旧定数名でマッピング:
// 旧 4(Paragraph) -> 新 Paragraph(5)
// 旧 0(Document) -> 新 Document(1)
// 旧 63(Any) -> 新バージョンに対応するメンバーなし
(2) ChildObjects / 子ノード
// 古いコード:任意の DocumentObject からアクセス可能
DocumentObjectCollection children = documentObject.ChildObjects;
// 新しいコード:複合オブジェクトのみ ChildObjects を持つ
if (documentObject is CompositeDocumentObject composite)
{
DocumentObjectCollection children = composite.ChildObjects;
DocumentObject first = composite.FirstChild;
int index = composite.GetIndex(child);
}
(3) コレクションへの追加
// Add はインデックスを返さなくなった
body.ChildObjects.Add(paragraph);
int index = body.ChildObjects.IndexOf(paragraph);
// 強く型付けされたコレクションオーバーロードはなくなった;DocumentObject オーバーロードを使用
row.Cells.Add((DocumentObject)cell);
table.Rows.Insert(0, (DocumentObject)row);
(4) インターフェースの戻り値の型
// 古いコード
ParagraphBase item = doc.CreateParagraphItem(ParagraphItemType.TextRange);
Body body = comment.Body;
// 新しいコード
IParagraphBase item = doc.CreateParagraphItem(ParagraphItemType.TextRange);
IBody body = comment.Body;
// 具象型が必要な場合は明示的にキャスト
var paragraph = (Paragraph)item;
(5) Comment / Footnote
// Comment.Items は削除されました
foreach (IParagraphBase item in comment.CommentedItems) { ... }
// Footnote.TextBody は削除されました;Footnote 自体が IBody
footnote.AddParagraph();
IBody footnoteBody = footnote.Body;
(6) TextBodyPart / TextBodySelection
part.Copy((IParagraphBase)paragraphBase, true);
part.PasteAfter((IParagraphBase)paragraphBase);
var selection = new TextBodySelection((IParagraphBase)start, (IParagraphBase)end);
(7) 図形の書式設定
// 古いコード:図形に直接 ApplyCharacterFormat
shape.ApplyCharacterFormat(format);
// 新しいコード:図形は ParagraphBase を継承しなくなった;CharacterFormat プロパティ / ApplyStyle を使用
shape.ApplyStyle("MyStyle");
// または shape.CharacterFormat に項目ごとにコピー
(8) IDocCloneable / ISectionCollection
// 名前空間の移行
using Spire.Doc.Interface; // 旧 Spire.Doc.CompoundFile
IDocCloneable cloneable = obj;
// IWSectionCollection -> ISectionCollection(空のマーカーインターフェース)
ISectionCollection sections = document.Sections;
Section first = (Section)sections; // インデクサは IDocumentObject を返す
(9) TextBoxCollection インデクサ
// 古いコード
TextBox textBox = document.TextBoxes;
// 新しいコード:インデクサは ShapeObject を返す
TextBox textBox = (TextBox)document.TextBoxes;
CellFormat、RowFormat、Cells、結合/分割などを提供しなくなりました。再設計するか代替 API を見つける必要があります。Style.NameToBuiltIn:同等の代替なし;名前マッピングテーブルを維持(組み込みスタイル名と列挙名は常に一致するとは限らない)。ApplyCharacterFormat:図形/コメント/脚注などに同等のメソッドなし;CharacterFormat を項目ごとにコピーしても元の動作を完全に再現できない可能性があります。ToString(string separator):直接の代替なし;子を走査して自分で連結します。ShapeItemCollection:パブリック型は依然存在しますが、すべてのコレクション操作がなくなり、この型を返すパブリックメンバーもありません。リフレクション/内部パスで使用している場合は、別のコレクションに切り替えてください。DocumentObject に GetText()、Remove()、GetAncestor(...)、GetNextInPreOrder(...)、GetPreviousInPreOrder(...)、HasChildNodes が追加されました。CompositeDocumentObject に AppendChild、PrependChild、InsertBefore、InsertAfter、RemoveChild、RemoveAllChildren、RemoveChildRange、GetChild、GetChildNodes、整数インデクサ、および ChildObjects/FirstChild/LastChild が追加されました。この API グループは、コレクションの追加/削除と手動走査コードの一部を置き換えます。
新しい IRevisionTracking(8 メンバー)が 35 の型で実装されています:IsInsertRevision、IsDeleteRevision、IsMoveFromRevision、IsMoveToRevision、InsertRevision、DeleteRevision、MoveFromRevision、MoveToRevision。コメント、脚注、段落、フィールド、図形、透かしなどがすべてリビジョンを統一的に処理できます。
CommentRangeCollection:Comment.CommentedItems、Count、インデクサ、Contains、IndexOf、ToArray、列挙をサポート。TextRangeCollection:Paragraph.TextNodes、StructureDocumentTagInline.TextNodes、インデクサ、ToArray、列挙をサポート。ToArray() を獲得:ParagraphCollection、TableCollection、CellCollection、RowCollection、FieldCollection、FormFieldCollection、TextBoxCollection、SectionCollection、ParagraphItemCollection、DocumentObjectCollection。BookmarkCollection:Count、GetEnumerator、Remove(string)、ResetBookmarkCache。PermissionCollection:Count、GetEnumerator、Remove(int)、FindById(int)。HeadersFooters.GetHeaderFooterByType(HeaderFooterType)。TableRow.FirstCell/LastCell。StyleCollection.GetNextAvailableIstd()。DocumentNavigator:MoveToBodyStart/End、MoveToBookmark(オーバーロード含む)、InsertDropDown。Bookmark.Name が書き込み可能;Bookmark.Text、Bookmark.Remove()、BookmarkStart.Bookmark 追加。Field.Separator が書き込み可能。ShapeBase.Size が書き込み可能;Shape.Title 追加;DocPicture.Size が書き込み可能。Permission.Editor、Permission.Remove()、PermissionStart.Permission、PermissionEnd.PermissionStart。Break.Text、Symbol.Text。DocumentObject の強く型付けされたオーバーロードと DocumentObjectCollection の Count。| 成果物 | パス | 備考 |
|---|---|---|
| このレポート | E:\packges\netdll\Spire.Doc_API_Diff_14.9.11_vs_14.10.6.md |
中国語の詳細レポート |
| 完全な CSV リスト | E:\packges\netdll\api-diff-tools\out\api-changes.csv |
552 変更行、priority / action 移行優先度列付き、UTF-8 BOM |
| 旧 API JSON | E:\packges\netdll\api-diff-tools\out\api-14.9.11.json |
508 型 / 5460 メンバー |
| 新 API JSON | E:\packges\netdll\api-diff-tools\out\api-14.10.9.json |
507 型 / 5527 メンバー |
| エクスポートスクリプト | E:\packges\netdll\api-diff-tools\dump-api.ps1 |
パブリック API のリフレクションのみのエクスポート |
| 分析スクリプト | analyze.py、query.py、refine.py、report_data.py、build_report.py |
差分 / クエリ / 実効サーフェス / レポート生成 |
CSV 列:change, priority, type, member_kind, member_name, category, action, old_signature, new_signature, details。
change 値:type_added、type_removed、type_modified、member_added、member_removed、member_modified。
priority 規約:P0 必須修正(API を使用するとコンパイル失敗、実行時失敗、またはサイレントエラー — 169 項目)、P1 修正推奨(コンパイルは通るが、廃止警告、名前付き引数、継承置換、またはセマンティックリスクあり — 64 項目)、P2 再コンパイルのみ(新しい API または純粋なメタデータ変更 — 319 項目)。action は各行の推奨処理を示します。
Assembly.ReflectionOnlyLoadFrom を使用してターゲット DLL をリフレクション専用で読み込み、ビジネスコードを実行しない。GetTypes() の前に GetReferencedAssemblies() を走査して依存関係をプリロード;ローカルに存在する依存関係は ReflectionOnlyLoadFrom にフォールバック。BindingFlags.Public | DeclaredOnly を使用して型自体が宣言したメンバーのみをエクスポート;コンストラクタはパブリックコンストラクタのみ取得。DeclaringType チェーン全体がパブリックであることを要求し、内部型内のパブリックネスト型が誤ってエクスポート型としてカウントされないようにする(修正後 508)。T:/M:/P:/F:/E:)を生成し、公式 XML ドキュメントと相互検証。ildasm は「protected module」を報告。代わりに通常の読み込み + Enum.GetValues で独立して値を読み取り、結果はリフレクションエクスポートと一致;DocumentObjectType が旧バージョンで 64 項目、新バージョンで 62 項目であることも確認。typeFullName|kind|name(paramTypeKeys)、ジェネリックパラメータは !0/!!0 に正規化し、「オーバーロード削除 + 追加」がシグネチャ変更と誤分類されるのを回避。protected/internal メンバー、メソッド本体の動作、パフォーマンス、シリアライズ形式は範囲外。spr...)が GetInterfaces() の結果に現れ、レポートからフィルタリング済み;エクスポートされた JSON には依然存在する可能性があり、分析時にフィルタリングが必要。Obsolete/Flags/EditorBrowsable 以外)およびイベントメンバー以外の高度なメタデータは分析していない。| 追加された型 | 種類 | メンバー数 | 基底クラス/備考 |
|---|---|---|---|
| Spire.Doc.Collections.CommentRangeCollection | クラス | 8 | Spire.Doc.OwnerHolder |
| Spire.Doc.Collections.TextRangeCollection | クラス | 2 | Spire.Doc.Collections.DocumentObjectCollection |
| Spire.Doc.Documents.ISectionCollection | インターフェース | 0 | — |
| Spire.Doc.Documents.StructureDocumentTagMarkEnd | クラス | 1 | Spire.Doc.Fields.ParagraphBase |
| Spire.Doc.Documents.StructureDocumentTagMarkStart | クラス | 1 | Spire.Doc.Fields.ParagraphBase |
| Spire.Doc.Fields.InlineBody | クラス | 16 | Spire.Doc.CompositeDocumentObject |
| Spire.Doc.Formatting.Revisions.IRevisionTracking | インターフェース | 8 | — |
| Spire.Doc.Interface.IDocCloneable | インターフェース | 1 | — |
| 追加された型 | 種類 | メンバー |
|---|---|---|
| Spire.Doc.Collections.CommentRangeCollection | メソッド | System.Boolean Contains(Spire.Doc.DocumentObject documentObject) |
| Spire.Doc.Collections.CommentRangeCollection | メソッド | System.Boolean Contains(Spire.Doc.Interface.IDocumentObject documentObject) |
| Spire.Doc.Collections.CommentRangeCollection | メソッド | override System.Collections.Generic.IEnumerator<Spire.Doc.Interface.IParagraphBase> GetEnumerator() |
| Spire.Doc.Collections.CommentRangeCollection | メソッド | System.Int32 IndexOf(Spire.Doc.DocumentObject documentObject) |
| Spire.Doc.Collections.CommentRangeCollection | メソッド | System.Int32 IndexOf(Spire.Doc.Interface.IDocumentObject documentObject) |
| Spire.Doc.Collections.CommentRangeCollection | メソッド | Spire.Doc.Interface.IParagraphBase[] ToArray() |
| Spire.Doc.Collections.CommentRangeCollection | プロパティ | System.Int32 Count { get; } |
| Spire.Doc.Collections.CommentRangeCollection | プロパティ | Spire.Doc.Interface.IParagraphBase this[System.Int32 index] { get; } |
| Spire.Doc.Collections.TextRangeCollection | メソッド | Spire.Doc.Interface.ITextRange[] ToArray() |
| Spire.Doc.Collections.TextRangeCollection | プロパティ | Spire.Doc.Interface.ITextRange this[System.Int32 index] { get; } |
| Spire.Doc.Documents.StructureDocumentTagMarkEnd | プロパティ | Spire.Doc.Documents.DocumentObjectType DocumentObjectType { get; } |
| Spire.Doc.Documents.StructureDocumentTagMarkStart | プロパティ | Spire.Doc.Documents.DocumentObjectType DocumentObjectType { get; } |
| Spire.Doc.Fields.InlineBody | メソッド | Spire.Doc.Documents.Paragraph AddParagraph() |
| Spire.Doc.Fields.InlineBody | メソッド | Spire.Doc.Table AddTable() |
| Spire.Doc.Fields.InlineBody | メソッド | Spire.Doc.Table AddTable(System.Boolean showBorder) |
| Spire.Doc.Fields.InlineBody | メソッド | override System.Void ApplyStyle(Spire.Doc.Documents.DefaultCharacterStyle bstyle) |
| Spire.Doc.Fields.InlineBody | メソッド | override System.Void ApplyStyle(System.String styleName) |
| Spire.Doc.Fields.InlineBody | プロパティ | Spire.Doc.Formatting.CharacterFormat CharacterFormat { get; } |
| Spire.Doc.Fields.InlineBody | プロパティ | Spire.Doc.Formatting.Revisions.EditRevision DeleteRevision { get; set; } |
| Spire.Doc.Fields.InlineBody | プロパティ | Spire.Doc.Formatting.Revisions.EditRevision InsertRevision { get; set; } |
| Spire.Doc.Fields.InlineBody | プロパティ | System.Boolean IsDeleteRevision { get; } |
| Spire.Doc.Fields.InlineBody | プロパティ | System.Boolean IsInsertRevision { get; } |
| Spire.Doc.Fields.InlineBody | プロパティ | System.Boolean IsMoveFromRevision { get; } |
| Spire.Doc.Fields.InlineBody | プロパティ | System.Boolean IsMoveToRevision { get; } |
| Spire.Doc.Fields.InlineBody | プロパティ | Spire.Doc.Formatting.Revisions.MoveRevision MoveFromRevision { get; set; } |
| Spire.Doc.Fields.InlineBody | プロパティ | Spire.Doc.Formatting.Revisions.MoveRevision MoveToRevision { get; set; } |
| Spire.Doc.Fields.InlineBody | プロパティ | Spire.Doc.Documents.Paragraph OwnerParagraph { get; } |
| Spire.Doc.Fields.InlineBody | プロパティ | System.String StyleName { get; } |
| Spire.Doc.Formatting.Revisions.IRevisionTracking | プロパティ | Spire.Doc.Formatting.Revisions.EditRevision DeleteRevision { get; } |
| Spire.Doc.Formatting.Revisions.IRevisionTracking | プロパティ | Spire.Doc.Formatting.Revisions.EditRevision InsertRevision { get; } |
| Spire.Doc.Formatting.Revisions.IRevisionTracking | プロパティ | System.Boolean IsDeleteRevision { get; } |
| Spire.Doc.Formatting.Revisions.IRevisionTracking | プロパティ | System.Boolean IsInsertRevision { get; } |
| Spire.Doc.Formatting.Revisions.IRevisionTracking | プロパティ | System.Boolean IsMoveFromRevision { get; } |
| Spire.Doc.Formatting.Revisions.IRevisionTracking | プロパティ | System.Boolean IsMoveToRevision { get; } |
| Spire.Doc.Formatting.Revisions.IRevisionTracking | プロパティ | Spire.Doc.Formatting.Revisions.MoveRevision MoveFromRevision { get; } |
| Spire.Doc.Formatting.Revisions.IRevisionTracking | プロパティ | Spire.Doc.Formatting.Revisions.MoveRevision MoveToRevision { get; } |
| Spire.Doc.Interface.IDocCloneable | メソッド | System.Object Clone() |
備考:CommentRangeCollection と TextRangeCollection は新しい型付きコレクション;InlineBody は Comment/Footnote の新しい基底クラス;IRevisionTracking はリビジョントラッキングインターフェース;IDocCloneable は CompoundFile 名前空間から移行;ISectionCollection は空のマーカーインターフェース;2 つの StructureDocumentTagMark* 型は SDT 境界マーク。
| 削除された型 | 種類 | メンバー数 | 基底クラス/備考 |
|---|---|---|---|
| Spire.Doc.Collections.DocumentObjectCollection+ChangeItems | デリゲート | 4 | System.MulticastDelegate |
| Spire.Doc.Collections.DocumentObjectCollection+ChangeItemsType | 列挙型 | 3 | System.Enum |
| Spire.Doc.Collections.DocumentSubsetCollection | クラス | 5 | Spire.Doc.OwnerHolder |
| Spire.Doc.Collections.DocumentSubsetCollection+SubSetEnumerator | クラス | 4 | System.Object |
| Spire.Doc.CompoundFile.IDocCloneable | インターフェース | 1 | — |
| Spire.Doc.Documents.IWSectionCollection | インターフェース | 3 | — |
| Spire.Doc.Documents.SDTContent | クラス | 1 | Spire.Doc.Body |
| Spire.Doc.Documents.SDTInlineContent | クラス | 5 | Spire.Doc.DocumentObject |
| Spire.Doc.Interface.ITextBoxItemCollection | インターフェース | 2 | — |
備考:DocumentSubsetCollection は旧 ParagraphCollection/TableCollection の基底クラス;SDTContent/SDTInlineContent は SDT コンテンツラッパー;CompoundFile.IDocCloneable は Interface に移動;IWSectionCollection は ISectionCollection に置き換え;ITextBoxItemCollection はパブリック実装者がいなかった;2 つのネスト型は旧コレクション変更通知のパブリック成果物。
これら 37 のメンバーはすべてこのバージョンで追加された 8 つの型にあります。完全なリストは付録 A.1 にあり、ここでは繰り返しません。
| 型 | 種類 | 追加されたメンバー | 廃止 |
|---|---|---|---|
| Spire.Doc.Body | プロパティ | Spire.Doc.Collections.BodyRegionCollection Items { get; } | — |
| Spire.Doc.BookmarkStart | プロパティ | Spire.Doc.Bookmark Bookmark { get; } | — |
| Spire.Doc.Bookmark | メソッド | System.Void Remove() | — |
| Spire.Doc.Bookmark | プロパティ | System.String Text { get; set; } | — |
| Spire.Doc.Break | プロパティ | System.String Text { get; set; } | — |
| Spire.Doc.Collections.BodyRegionCollection | プロパティ | Spire.Doc.BodyRegion this[System.Int32 index] { get; } | — |
| Spire.Doc.Collections.BookmarkCollection | メソッド | override System.Collections.IEnumerator GetEnumerator() | — |
| Spire.Doc.Collections.BookmarkCollection | メソッド | System.Void Remove(System.String bookmarkName) | — |
| Spire.Doc.Collections.BookmarkCollection | メソッド | System.Void ResetBookmarkCache() | — |
| Spire.Doc.Collections.BookmarkCollection | プロパティ | System.Int32 Count { get; } | — |
| Spire.Doc.Collections.CellCollection | コンストラクタ | CellCollection(Spire.Doc.CompositeDocumentObject container) | — |
| Spire.Doc.Collections.CellCollection | メソッド | Spire.Doc.TableCell[] ToArray() | — |
| Spire.Doc.Collections.DocumentObjectCollection | メソッド | System.Void Add(Spire.Doc.DocumentObject documentObject) | — |
| Spire.Doc.Collections.DocumentObjectCollection | メソッド | System.Boolean Contains(Spire.Doc.DocumentObject documentObject) | — |
| Spire.Doc.Collections.DocumentObjectCollection | メソッド | override System.Collections.Generic.IEnumerator<Spire.Doc.DocumentObject> GetEnumerator() | — |
| Spire.Doc.Collections.DocumentObjectCollection | メソッド | System.Int32 IndexOf(Spire.Doc.DocumentObject documentObject) | — |
| Spire.Doc.Collections.DocumentObjectCollection | メソッド | System.Void Insert(System.Int32 index, Spire.Doc.DocumentObject documentObject) | このメソッドは廃止されました。代わりに Owner.InsertBefore(documentObject, refChild) または Owner.InsertAfter(documentObject, refChild) を使用してください。 |
| Spire.Doc.Collections.DocumentObjectCollection | メソッド | System.Void Remove(Spire.Doc.DocumentObject documentObject) | — |
| Spire.Doc.Collections.DocumentObjectCollection | メソッド | Spire.Doc.DocumentObject[] ToArray() | — |
| Spire.Doc.Collections.DocumentObjectCollection | プロパティ | System.Int32 Count { get; } | — |
| Spire.Doc.Collections.FieldCollection | メソッド | Spire.Doc.Fields.Field[] ToArray() | — |
| Spire.Doc.Collections.FormFieldCollection | メソッド | Spire.Doc.Fields.FormField[] ToArray() | — |
| Spire.Doc.Collections.ParagraphCollection | コンストラクタ | ParagraphCollection(Spire.Doc.CompositeDocumentObject ownerBody) | — |
| Spire.Doc.Collections.ParagraphCollection | メソッド | Spire.Doc.Documents.Paragraph[] ToArray() | — |
| Spire.Doc.Collections.ParagraphItemCollection | メソッド | Spire.Doc.Interface.IParagraphBase[] ToArray() | — |
| Spire.Doc.Collections.PermissionCollection | メソッド | Spire.Doc.Permission FindById(System.Int32 id) | — |
| Spire.Doc.Collections.PermissionCollection | メソッド | override System.Collections.IEnumerator GetEnumerator() | — |
| Spire.Doc.Collections.PermissionCollection | メソッド | System.Void Remove(System.Int32 id) | — |
| Spire.Doc.Collections.PermissionCollection | プロパティ | System.Int32 Count { get; } | — |
| Spire.Doc.Collections.RowCollection | コンストラクタ | RowCollection(Spire.Doc.CompositeDocumentObject container) | — |
| Spire.Doc.Collections.RowCollection | メソッド | Spire.Doc.TableRow[] ToArray() | — |
| Spire.Doc.Collections.SectionCollection | メソッド | Spire.Doc.Section[] ToArray() | — |
| Spire.Doc.Collections.StyleCollection | メソッド | System.Int32 GetNextAvailableIstd() | — |
| Spire.Doc.Collections.TableCollection | コンストラクタ | TableCollection(Spire.Doc.CompositeDocumentObject container) | — |
| Spire.Doc.Collections.TableCollection | メソッド | Spire.Doc.Table[] ToArray() | — |
| Spire.Doc.Collections.TextBoxCollection | メソッド | Spire.Doc.Fields.ShapeObject[] ToArray() | — |
| Spire.Doc.CompositeDocumentObject | メソッド | Spire.Doc.DocumentObject AppendChild(Spire.Doc.DocumentObject newChild) | — |
| Spire.Doc.CompositeDocumentObject | メソッド | Spire.Doc.DocumentObject GetChild(Spire.Doc.Documents.DocumentObjectType documentObjectType, System.Int32 index, System.Boolean isDeep) | — |
| Spire.Doc.CompositeDocumentObject | メソッド | Spire.Doc.Collections.DocumentObjectCollection GetChildNodes(Spire.Doc.Documents.DocumentObjectType documentObjectType, System.Boolean isDeep) | — |
| Spire.Doc.CompositeDocumentObject | メソッド | Spire.Doc.Collections.DocumentObjectCollection GetChildNodes(Spire.Doc.Documents.DocumentObjectType[] documentObjectTypes, System.Boolean isDeep) | — |
| Spire.Doc.CompositeDocumentObject | メソッド | override System.Collections.Generic.IEnumerator<Spire.Doc.DocumentObject> GetEnumerator() | — |
| Spire.Doc.CompositeDocumentObject | メソッド | Spire.Doc.DocumentObject InsertAfter(Spire.Doc.DocumentObject newChild, Spire.Doc.DocumentObject refChild) | — |
| Spire.Doc.CompositeDocumentObject | メソッド | Spire.Doc.DocumentObject InsertBefore(Spire.Doc.DocumentObject newChild, Spire.Doc.DocumentObject refChild) | — |
| Spire.Doc.CompositeDocumentObject | メソッド | Spire.Doc.DocumentObject PrependChild(Spire.Doc.DocumentObject newChild) | — |
| Spire.Doc.CompositeDocumentObject | メソッド | System.Void RemoveAllChildren() | — |
| Spire.Doc.CompositeDocumentObject | メソッド | Spire.Doc.DocumentObject RemoveChild(Spire.Doc.DocumentObject oldChild) | — |
| Spire.Doc.CompositeDocumentObject | メソッド | System.Void RemoveChildRange(Spire.Doc.DocumentObject startNode, Spire.Doc.DocumentObject endNode) | — |
| Spire.Doc.CompositeDocumentObject | プロパティ | Spire.Doc.Collections.DocumentObjectCollection ChildObjects { get; } | — |
| Spire.Doc.CompositeDocumentObject | プロパティ | Spire.Doc.DocumentObject FirstChild { get; } | — |
| Spire.Doc.CompositeDocumentObject | プロパティ | System.Boolean HasChildNodes { get; } | — |
| Spire.Doc.CompositeDocumentObject | プロパティ | Spire.Doc.DocumentObject this[System.Int32 index] { get; } | — |
| Spire.Doc.CompositeDocumentObject | プロパティ | Spire.Doc.DocumentObject LastChild { get; } | — |
| Spire.Doc.DocumentObject | メソッド | virtual Spire.Doc.CompositeDocumentObject GetAncestor(Spire.Doc.Documents.DocumentObjectType ancestorType) | — |
| Spire.Doc.DocumentObject | メソッド | virtual Spire.Doc.CompositeDocumentObject GetAncestor(System.Type ancestorType) | — |
| Spire.Doc.DocumentObject | メソッド | Spire.Doc.DocumentObject GetNextInPreOrder(Spire.Doc.DocumentObject rootObject) | — |
| Spire.Doc.DocumentObject | メソッド | Spire.Doc.DocumentObject GetPreviousInPreOrder(Spire.Doc.DocumentObject rootObject) | — |
| Spire.Doc.DocumentObject | メソッド | System.String GetText() | — |
| Spire.Doc.DocumentObject | メソッド | System.Void Remove() | — |
| Spire.Doc.DocumentObject | プロパティ | System.Boolean HasChildNodes { get; } | — |
| Spire.Doc.Documents.DocumentNavigator | メソッド | Spire.Doc.Fields.DropDownFormField InsertDropDown(System.String name, System.String[] items, System.Int32 selectedIndex) | — |
| Spire.Doc.Documents.DocumentNavigator | メソッド | System.Void MoveToBodyEnd() | — |
| Spire.Doc.Documents.DocumentNavigator | メソッド | System.Void MoveToBodyStart() | — |
| Spire.Doc.Documents.DocumentNavigator | メソッド | System.Boolean MoveToBookmark(System.String bookmarkName) | — |
| Spire.Doc.Documents.DocumentNavigator | メソッド | System.Boolean MoveToBookmark(System.String bookmarkName, System.Boolean isStart, System.Boolean isAfter) | — |
| Spire.Doc.Documents.DocumentObjectType | フィールド | const Spire.Doc.Documents.DocumentObjectType StructureDocumentTagMarkEnd = 8 | — |
| Spire.Doc.Documents.DocumentObjectType | フィールド | const Spire.Doc.Documents.DocumentObjectType StructureDocumentTagMarkStart = 7 | — |
| Spire.Doc.Documents.Paragraph | メソッド | Spire.Doc.PermissionEnd AppendPermEnd(System.Int32 id) | — |
| Spire.Doc.Documents.Paragraph | メソッド | Spire.Doc.PermissionStart AppendPermStart(System.Int32 id) | — |
| Spire.Doc.Documents.Paragraph | プロパティ | Spire.Doc.Collections.TextRangeCollection TextNodes { get; } | — |
| Spire.Doc.Documents.StructureDocumentTagCell | コンストラクタ | StructureDocumentTagCell(Spire.Doc.Document doc) | — |
| Spire.Doc.Documents.StructureDocumentTagInline | メソッド | override System.Void ApplyStyle(System.String styleName) | — |
| Spire.Doc.Documents.StructureDocumentTagInline | プロパティ | Spire.Doc.Formatting.CharacterFormat CharacterFormat { get; } | — |
| Spire.Doc.Documents.StructureDocumentTagInline | プロパティ | Spire.Doc.Formatting.Revisions.EditRevision DeleteRevision { get; set; } | — |
| Spire.Doc.Documents.StructureDocumentTagInline | プロパティ | Spire.Doc.Formatting.Revisions.EditRevision InsertRevision { get; set; } | — |
| Spire.Doc.Documents.StructureDocumentTagInline | プロパティ | System.Boolean IsDeleteRevision { get; } | — |
| Spire.Doc.Documents.StructureDocumentTagInline | プロパティ | System.Boolean IsInsertRevision { get; } | — |
| Spire.Doc.Documents.StructureDocumentTagInline | プロパティ | System.Boolean IsMoveFromRevision { get; } | — |
| Spire.Doc.Documents.StructureDocumentTagInline | プロパティ | System.Boolean IsMoveToRevision { get; } | — |
| Spire.Doc.Documents.StructureDocumentTagInline | プロパティ | Spire.Doc.Collections.ParagraphItemCollection Items { get; } | — |
| Spire.Doc.Documents.StructureDocumentTagInline | プロパティ | Spire.Doc.Formatting.Revisions.MoveRevision MoveFromRevision { get; set; } | — |
| Spire.Doc.Documents.StructureDocumentTagInline | プロパティ | Spire.Doc.Formatting.Revisions.MoveRevision MoveToRevision { get; set; } | — |
| Spire.Doc.Documents.StructureDocumentTagInline | プロパティ | Spire.Doc.Documents.Paragraph OwnerParagraph { get; } | — |
| Spire.Doc.Documents.StructureDocumentTagInline | プロパティ | System.String StyleName { get; } | — |
| Spire.Doc.Documents.StructureDocumentTagInline | プロパティ | System.String Text { get; } | — |
| Spire.Doc.Documents.StructureDocumentTagInline | プロパティ | Spire.Doc.Collections.TextRangeCollection TextNodes { get; } | — |
| Spire.Doc.Documents.StructureDocumentTagRow | コンストラクタ | StructureDocumentTagRow(Spire.Doc.Document doc) | — |
| Spire.Doc.Documents.StructureDocumentTag | プロパティ | Spire.Doc.Interface.IBody Body { get; } | — |
| Spire.Doc.Documents.TextBodyPart | メソッド | System.Void Copy(Spire.Doc.Interface.IParagraphBase pItem, System.Boolean clone) | — |
| Spire.Doc.Documents.TextBodyPart | メソッド | System.Void PasteAfter(Spire.Doc.Interface.IParagraphBase paragraphItem) | — |
| Spire.Doc.Documents.TextBodySelection | コンストラクタ | TextBodySelection(Spire.Doc.Interface.IParagraphBase itemStart, Spire.Doc.Interface.IParagraphBase itemEnd) | — |
| Spire.Doc.Fields.Comment | プロパティ | Spire.Doc.Collections.CommentRangeCollection CommentedItems { get; } | — |
| Spire.Doc.Fields.DocPicture | プロパティ | System.Drawing.SizeF Size { get; set; } | — |
| Spire.Doc.Fields.OMath.OfficeMath | メソッド | override System.Void ApplyStyle(Spire.Doc.Documents.DefaultCharacterStyle bstyle) | — |
| Spire.Doc.Fields.OMath.OfficeMath | メソッド | override System.Void ApplyStyle(System.String styleName) | — |
| Spire.Doc.Fields.OMath.OfficeMath | プロパティ | Spire.Doc.Formatting.CharacterFormat CharacterFormat { get; } | — |
| Spire.Doc.Fields.OMath.OfficeMath | プロパティ | Spire.Doc.Formatting.Revisions.EditRevision DeleteRevision { get; set; } | — |
| Spire.Doc.Fields.OMath.OfficeMath | プロパティ | Spire.Doc.Formatting.Revisions.EditRevision InsertRevision { get; set; } | — |
| Spire.Doc.Fields.OMath.OfficeMath | プロパティ | System.Boolean IsDeleteRevision { get; } | — |
| Spire.Doc.Fields.OMath.OfficeMath | プロパティ | System.Boolean IsInsertRevision { get; } | — |
| Spire.Doc.Fields.OMath.OfficeMath | プロパティ | System.Boolean IsMoveFromRevision { get; } | — |
| Spire.Doc.Fields.OMath.OfficeMath | プロパティ | System.Boolean IsMoveToRevision { get; } | — |
| Spire.Doc.Fields.OMath.OfficeMath | プロパティ | Spire.Doc.Formatting.Revisions.MoveRevision MoveFromRevision { get; set; } | — |
| Spire.Doc.Fields.OMath.OfficeMath | プロパティ | Spire.Doc.Formatting.Revisions.MoveRevision MoveToRevision { get; set; } | — |
| Spire.Doc.Fields.OMath.OfficeMath | プロパティ | Spire.Doc.Documents.Paragraph OwnerParagraph { get; } | — |
| Spire.Doc.Fields.OMath.OfficeMath | プロパティ | System.String StyleName { get; } | — |
| Spire.Doc.Fields.ParagraphBase | メソッド | virtual Spire.Doc.CompositeDocumentObject GetAncestor(Spire.Doc.Documents.DocumentObjectType objectType) | — |
| Spire.Doc.Fields.ParagraphBase | プロパティ | System.Boolean HasChildNodes { get; } | — |
| Spire.Doc.Fields.Shapes.ShapeBase | メソッド | override System.Void ApplyStyle(Spire.Doc.Documents.DefaultCharacterStyle bstyle) | — |
| Spire.Doc.Fields.Shapes.ShapeBase | メソッド | override System.Void ApplyStyle(System.String styleName) | — |
| Spire.Doc.Fields.Shapes.ShapeBase | プロパティ | Spire.Doc.Formatting.CharacterFormat CharacterFormat { get; } | — |
| Spire.Doc.Fields.Shapes.ShapeBase | プロパティ | Spire.Doc.Formatting.Revisions.EditRevision DeleteRevision { get; set; } | — |
| Spire.Doc.Fields.Shapes.ShapeBase | プロパティ | Spire.Doc.Formatting.Revisions.EditRevision InsertRevision { get; set; } | — |
| Spire.Doc.Fields.Shapes.ShapeBase | プロパティ | System.Boolean IsDeleteRevision { get; } | — |
| Spire.Doc.Fields.Shapes.ShapeBase | プロパティ | System.Boolean IsInsertRevision { get; } | — |
| Spire.Doc.Fields.Shapes.ShapeBase | プロパティ | System.Boolean IsMoveFromRevision { get; } | — |
| Spire.Doc.Fields.Shapes.ShapeBase | プロパティ | System.Boolean IsMoveToRevision { get; } | — |
| Spire.Doc.Fields.Shapes.ShapeBase | プロパティ | Spire.Doc.Formatting.Revisions.MoveRevision MoveFromRevision { get; set; } | — |
| Spire.Doc.Fields.Shapes.ShapeBase | プロパティ | Spire.Doc.Formatting.Revisions.MoveRevision MoveToRevision { get; set; } | — |
| Spire.Doc.Fields.Shapes.ShapeBase | プロパティ | Spire.Doc.Documents.Paragraph OwnerParagraph { get; } | — |
| Spire.Doc.Fields.Shapes.ShapeBase | プロパティ | System.String StyleName { get; } | — |
| Spire.Doc.Fields.Shapes.ShapeBase | プロパティ | System.String Title { get; set; } | — |
| Spire.Doc.Fields.Shapes.Shape | プロパティ | System.Boolean ExtrusionEnabled { get; } | — |
| Spire.Doc.Fields.Shapes.Shape | プロパティ | System.Boolean ShadowEnabled { get; } | — |
| Spire.Doc.Fields.Shapes.Shape | プロパティ | System.Drawing.Color StrokeColor { get; set; } | — |
| Spire.Doc.Fields.Shapes.Shape | プロパティ | System.Double StrokeWeight { get; set; } | — |
| Spire.Doc.Fields.Symbol | プロパティ | System.String Text { get; set; } | — |
| Spire.Doc.HeadersFooters | メソッド | Spire.Doc.HeaderFooter GetHeaderFooterByType(Spire.Doc.Documents.HeaderFooterType type) | — |
| Spire.Doc.Interface.IBody | メソッド | Spire.Doc.Table AddTable(System.Boolean showBorder) | — |
| Spire.Doc.Interface.IBody | プロパティ | Spire.Doc.Interface.IParagraph FirstParagraph { get; } | — |
| Spire.Doc.Interface.IBody | プロパティ | Spire.Doc.Collections.BodyRegionCollection Items { get; } | — |
| Spire.Doc.Interface.IParagraphBase | メソッド | System.Void ApplyStyle(Spire.Doc.Documents.DefaultCharacterStyle bstyle) | — |
| Spire.Doc.Interface.IParagraphBase | プロパティ | Spire.Doc.Formatting.CharacterFormat CharacterFormat { get; } | — |
| Spire.Doc.OwnerHolder | メソッド | override System.Object Clone() | — |
| Spire.Doc.PermissionEnd | コンストラクタ | PermissionEnd(Spire.Doc.Interface.IDocument document, System.Int32 id) | — |
| Spire.Doc.PermissionEnd | プロパティ | Spire.Doc.PermissionStart PermissionStart { get; } | — |
| Spire.Doc.PermissionStart | コンストラクタ | PermissionStart(Spire.Doc.Interface.IDocument doc, System.Int32 id) | — |
| Spire.Doc.PermissionStart | プロパティ | Spire.Doc.Permission Permission { get; } | — |
| Spire.Doc.Permission | メソッド | System.Void Remove() | — |
| Spire.Doc.Permission | プロパティ | System.String Editor { get; set; } | — |
| Spire.Doc.TableRow | プロパティ | Spire.Doc.TableCell FirstCell { get; } | — |
| Spire.Doc.TableRow | プロパティ | Spire.Doc.TableCell LastCell { get; } | — |
これらのメンバーは古い型自体に宣言されており、新しいバージョンではその型も祖先も提供しません。基底クラス変更により失われた継承メンバーはこの表には含まれません。実効メンバーサーフェス統計を参照してください。
| 型 | 削除されたメンバー | 推奨される代替 |
|---|---|---|
| Spire.Doc.Bookmark | Bookmark(Spire.Doc.BookmarkStart start) | Bookmark(BookmarkStart, BookmarkEnd)、または BookmarkStart.Bookmark を使用 |
| Spire.Doc.Collections.BodyRegionCollection | BodyRegionCollection(Spire.Doc.Body body) | 通常 Body.Items から取得;自分で new しない |
| Spire.Doc.Collections.CellCollection | CellCollection(Spire.Doc.TableRow owner) | TableRow.Cells から取得、または CellCollection(CompositeDocumentObject) を使用 |
| Spire.Doc.Collections.CellCollection | System.Int32 Add(Spire.Doc.TableCell cell) | 基底クラス DocumentObjectCollection の DocumentObject オーバーロードを明示的キャストで使用 |
| Spire.Doc.Collections.CellCollection | System.Int32 IndexOf(Spire.Doc.TableCell cell) | 基底クラス DocumentObjectCollection の DocumentObject オーバーロードを明示的キャストで使用 |
| Spire.Doc.Collections.CellCollection | System.Void Insert(System.Int32 index, Spire.Doc.TableCell cell) | 基底クラス DocumentObjectCollection の DocumentObject オーバーロードを明示的キャストで使用 |
| Spire.Doc.Collections.CellCollection | System.Void Remove(Spire.Doc.TableCell cell) | 基底クラス DocumentObjectCollection の DocumentObject オーバーロードを明示的キャストで使用 |
| Spire.Doc.Collections.CommentsCollection | CommentsCollection(Spire.Doc.Document doc) | Document.Comments から取得 |
| Spire.Doc.Collections.CommentsCollection | System.Int32 Counts() | Count を使用 |
| Spire.Doc.Collections.CommentsCollection | System.Void Remove(Spire.Doc.Fields.Comment comment) | Remove(DocumentObject) または comment.Remove() を使用 |
| Spire.Doc.Collections.ParagraphCollection | ParagraphCollection(Spire.Doc.Collections.BodyRegionCollection bodyItems) | Body.Paragraphs から取得、または ParagraphCollection(CompositeDocumentObject) を使用 |
| Spire.Doc.Collections.PermissionCollection | Spire.Doc.Permission FindById(System.String id) | FindById(int) / Remove(int) を使用 |
| Spire.Doc.Collections.PermissionCollection | Spire.Doc.Permission this[System.String id] { get; } | FindById(int) / Remove(int) を使用 |
| Spire.Doc.Collections.RowCollection | RowCollection(Spire.Doc.Table owner) | Table.Rows から取得、または RowCollection(CompositeDocumentObject) を使用 |
| Spire.Doc.Collections.RowCollection | System.Int32 Add(Spire.Doc.TableRow row) | 基底クラス DocumentObjectCollection の DocumentObject オーバーロードを明示的キャストで使用 |
| Spire.Doc.Collections.RowCollection | System.Int32 IndexOf(Spire.Doc.TableRow row) | 基底クラス DocumentObjectCollection の DocumentObject オーバーロードを明示的キャストで使用 |
| Spire.Doc.Collections.RowCollection | System.Void Insert(System.Int32 index, Spire.Doc.TableRow row) | 基底クラス DocumentObjectCollection の DocumentObject オーバーロードを明示的キャストで使用 |
| Spire.Doc.Collections.RowCollection | System.Void Remove(Spire.Doc.TableRow row) | 基底クラス DocumentObjectCollection の DocumentObject オーバーロードを明示的キャストで使用 |
| Spire.Doc.Collections.SectionCollection | SectionCollection(Spire.Doc.Document doc) | Document.Sections から取得 |
| Spire.Doc.Collections.SectionCollection | override System.Int32 Add(Spire.Doc.Interface.ISection section) | DocumentObjectCollection.Add/IndexOf(DocumentObject) を使用 |
| Spire.Doc.Collections.SectionCollection | override System.Int32 IndexOf(Spire.Doc.Interface.ISection section) | DocumentObjectCollection.Add/IndexOf(DocumentObject) を使用 |
| Spire.Doc.Collections.TableCollection | TableCollection(Spire.Doc.Collections.BodyRegionCollection bodyItems) | Body.Tables から取得、または TableCollection(CompositeDocumentObject) を使用 |
| Spire.Doc.DocumentObject | Spire.Doc.Collections.DocumentObjectCollection ChildObjects { get; } | CompositeDocumentObject に下方移動;アクセス前にキャスト |
| Spire.Doc.DocumentObject | Spire.Doc.DocumentObject FirstChild { get; } | CompositeDocumentObject に下方移動;アクセス前にキャスト |
| Spire.Doc.DocumentObject | Spire.Doc.DocumentObject LastChild { get; } | CompositeDocumentObject に下方移動;アクセス前にキャスト |
| Spire.Doc.DocumentObject | virtual System.Int32 GetIndex(Spire.Doc.Interface.IDocumentObject entity) | CompositeDocumentObject に下方移動;アクセス前にキャスト |
| Spire.Doc.DocumentObject | virtual System.String ToString(System.String seperator) | 直接の代替なし;子を走査して自分でテキストを連結(オプションで GetText() を使用) |
| Spire.Doc.Documents.DocumentObjectType | const Spire.Doc.Documents.DocumentObjectType SDTBlockContent = 9 | SDT コンテンツの概念は削除;直接の代替なし |
| Spire.Doc.Documents.DocumentObjectType | const Spire.Doc.Documents.DocumentObjectType SDTCellContent = 12 | SDT コンテンツの概念は削除;直接の代替なし |
| Spire.Doc.Documents.DocumentObjectType | const Spire.Doc.Documents.DocumentObjectType SDTInlineContent = 10 | SDT コンテンツの概念は削除;直接の代替なし |
| Spire.Doc.Documents.DocumentObjectType | const Spire.Doc.Documents.DocumentObjectType SDTRowContent = 11 | SDT コンテンツの概念は削除;直接の代替なし |
| Spire.Doc.Documents.Paragraph | Spire.Doc.PermissionEnd AppendPermEnd(System.String id) | AppendPermEnd(int id) を使用 |
| Spire.Doc.Documents.Paragraph | Spire.Doc.PermissionStart AppendPermStart(System.String id) | AppendPermStart(int id) を使用 |
| Spire.Doc.Documents.SDTProperties | SDTProperties(Spire.Doc.DocumentObject owner) | StructureDocumentTag.SDTProperties から取得 |
| Spire.Doc.Documents.StructureDocumentTag | Spire.Doc.Documents.SDTContent SDTContent { get; } | StructureDocumentTag.Body(IBody)を使用 |
| Spire.Doc.Documents.StructureDocumentTagCell | StructureDocumentTagCell(Spire.Doc.TableRow ownerRow) | SDT Cell はもはや TableCell ではない;CompositeDocumentObject の子ノード API を使用 |
| Spire.Doc.Documents.StructureDocumentTagInline | Spire.Doc.Documents.SDTInlineContent SDTContent { get; } | Items / Text / TextNodes を使用、または CompositeDocumentObject の子ノードを通じてアクセス |
| Spire.Doc.Documents.StructureDocumentTagRow | Spire.Doc.Collections.CellCollection Cells { get; } | SDT Row はもはや TableRow ではない;直接の代替なし — 子ノード / CompositeDocumentObject API を使用 |
| Spire.Doc.Documents.StructureDocumentTagRow | Spire.Doc.Formatting.RowFormat RowFormat { get; } | SDT Row はもはや TableRow ではない;直接の代替なし |
| Spire.Doc.Documents.StructureDocumentTagRow | StructureDocumentTagRow(Spire.Doc.Table ownerTable) | SDT Row はもはや TableRow ではない;CompositeDocumentObject の子ノード API を使用 |
| Spire.Doc.Documents.Style | static Spire.Doc.Documents.BuiltinStyle NameToBuiltIn(System.String styleName) | 直接の代替なし;名前から BuiltinStyle へのマッピングを維持、または名前正規化付き Enum.TryParse を使用 |
| Spire.Doc.Documents.TextBodyPart | System.Void Copy(Spire.Doc.Fields.ParagraphBase pItem, System.Boolean clone) | Copy(IParagraphBase, bool) オーバーロードを使用 |
| Spire.Doc.Documents.TextBodyPart | System.Void PasteAfter(Spire.Doc.Fields.ParagraphBase paragraphItem) | PasteAfter(IParagraphBase) オーバーロードを使用 |
| Spire.Doc.Documents.TextBodySelection | TextBodySelection(Spire.Doc.Fields.ParagraphBase itemStart, Spire.Doc.Fields.ParagraphBase itemEnd) | TextBodySelection(IParagraphBase, IParagraphBase) を使用 |
| Spire.Doc.Fields.Comment | Spire.Doc.Collections.ParagraphItemCollection Items { get; } | Comment.CommentedItems(CommentRangeCollection)を使用 |
| Spire.Doc.Fields.Comment | System.Void EnsureMinimum() | 直接の代替なし;必要に応じて段落/コンテンツを追加 |
| Spire.Doc.Fields.Footnote | Spire.Doc.Body TextBody { get; } | Footnote 自体が IBody;AddParagraph/AddTable などを直接呼び出す |
| Spire.Doc.Fields.Footnote | System.Void EnsureMinimum() | 直接の代替なし;必要に応じて段落/コンテンツを追加 |
| Spire.Doc.Fields.OMath.OfficeMath | Spire.Doc.Documents.Paragraph ParentParagraph { get; } | OwnerParagraph を使用 |
| Spire.Doc.Fields.ParagraphBase | Spire.Doc.Collections.DocumentObjectCollection ChildObjects { get; } | ランタイムオブジェクトが CompositeDocumentObject の場合のみキャスト後にアクセス可能;リーフノードには HasChildNodes を使用 |
| Spire.Doc.Permission | Permission(Spire.Doc.PermissionStart start) | PermissionStart.Permission を使用 |
| Spire.Doc.Permission | Permission(Spire.Doc.PermissionStart start, Spire.Doc.PermissionEnd end) | PermissionStart.Permission を使用;PermissionEnd.PermissionStart で関連付け |
| Spire.Doc.PermissionEnd | PermissionEnd(Spire.Doc.Interface.IDocument document, System.String id) | PermissionEnd(IDocument, int) を使用 |
| Spire.Doc.PermissionStart | PermissionStart(Spire.Doc.Interface.IDocument doc, System.String id) | PermissionStart(IDocument, int) を使用 |
これらのメンバーは旧バージョンで何らかの型に宣言されていましたが、新バージョンではその型または祖先が同じ名前とシグネチャのメンバーを依然提供しているため、通常は再コンパイルのみが必要です。ただし、DocPicture.Rotation と HeadersFooters.GetEnumerator はシグネチャが変更されているため、「完全互換」として扱ってはいけません。
| 型 | 旧宣言メンバー | 新バージョンでの継承元 | 備考 |
|---|---|---|---|
| Spire.Doc.Body | Spire.Doc.Collections.DocumentObjectCollection ChildObjects { get; } | Spire.Doc.CompositeDocumentObject | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Collections.CellCollection | System.Void RemoveAt(System.Int32 index) | Spire.Doc.Collections.DocumentObjectCollection | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Collections.CommentsCollection | System.Void Clear() | Spire.Doc.Collections.DocumentObjectCollection | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Collections.CommentsCollection | System.Void RemoveAt(System.Int32 index) | Spire.Doc.Collections.DocumentObjectCollection | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Collections.ParagraphCollection | override System.Void RemoveAt(System.Int32 index) | Spire.Doc.Collections.DocumentObjectCollection | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Collections.TableCollection | System.Void RemoveAt(System.Int32 index) | Spire.Doc.Collections.DocumentObjectCollection | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Collections.TextBoxCollection | System.Void Clear() | Spire.Doc.Collections.DocumentObjectCollection | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Collections.TextBoxCollection | System.Void RemoveAt(System.Int32 index) | Spire.Doc.Collections.DocumentObjectCollection | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Document | Spire.Doc.Collections.DocumentObjectCollection ChildObjects { get; } | Spire.Doc.CompositeDocumentObject | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Documents.Paragraph | Spire.Doc.Collections.DocumentObjectCollection ChildObjects { get; } | Spire.Doc.CompositeDocumentObject | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Documents.StructureDocumentTag | Spire.Doc.Collections.DocumentObjectCollection ChildObjects { get; } | Spire.Doc.CompositeDocumentObject | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Documents.StructureDocumentTagInline | Spire.Doc.Collections.DocumentObjectCollection ChildObjects { get; } | Spire.Doc.CompositeDocumentObject | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Documents.StructureDocumentTagRow | Spire.Doc.Collections.DocumentObjectCollection ChildObjects { get; } | Spire.Doc.CompositeDocumentObject | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Fields.Comment | Spire.Doc.Collections.DocumentObjectCollection ChildObjects { get; } | Spire.Doc.CompositeDocumentObject | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Fields.DocPicture | System.Single Rotation { get; set; } | Spire.Doc.Fields.Shapes.ShapeBase | 戻り値の型 float→double;旧メンバーは同名の基底プロパティを隠し、新バージョンは ShapeBase から継承 — ソースとバイナリの両方を破壊 |
| Spire.Doc.Fields.Footnote | Spire.Doc.Collections.DocumentObjectCollection ChildObjects { get; } | Spire.Doc.CompositeDocumentObject | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Fields.OMath.OfficeMath | Spire.Doc.Collections.DocumentObjectCollection ChildObjects { get; } | Spire.Doc.CompositeDocumentObject | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Fields.ShapeObject | Spire.Doc.Collections.DocumentObjectCollection ChildObjects { get; } | Spire.Doc.CompositeDocumentObject | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Fields.ShapeObject | System.Boolean ExtrusionEnabled { get; } | Spire.Doc.Fields.Shapes.Shape | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Fields.ShapeObject | System.Boolean ShadowEnabled { get; } | Spire.Doc.Fields.Shapes.Shape | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Fields.ShapeObject | System.Double StrokeWeight { get; set; } | Spire.Doc.Fields.Shapes.Shape | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Fields.ShapeObject | System.Drawing.Color StrokeColor { get; set; } | Spire.Doc.Fields.Shapes.Shape | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Fields.Shapes.ShapeBase | Spire.Doc.Collections.DocumentObjectCollection ChildObjects { get; } | Spire.Doc.CompositeDocumentObject | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Fields.TextBox | Spire.Doc.Collections.DocumentObjectCollection ChildObjects { get; } | Spire.Doc.CompositeDocumentObject | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.HeadersFooters | override System.Collections.IEnumerator GetEnumerator() | Spire.Doc.Collections.DocumentObjectCollection | 戻り値の型が IEnumerator から IEnumerator<DocumentObject> に変更;ソースでは代入可能だがバイナリシグネチャは一致しない |
| Spire.Doc.Pages.FixedLayoutSpan | Spire.Doc.DocumentObject ParentNode { get; } | Spire.Doc.Pages.LayoutElement | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Section | Spire.Doc.Collections.DocumentObjectCollection ChildObjects { get; } | Spire.Doc.CompositeDocumentObject | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.Table | Spire.Doc.Collections.DocumentObjectCollection ChildObjects { get; } | Spire.Doc.CompositeDocumentObject | シグネチャ変更なし;通常は再コンパイルのみ |
| Spire.Doc.TableRow | Spire.Doc.Collections.DocumentObjectCollection ChildObjects { get; } | Spire.Doc.CompositeDocumentObject | シグネチャ変更なし;通常は再コンパイルのみ |
| 型 | メンバー | 変更 |
|---|---|---|
| Spire.Doc.BodyRegion | Spire.Doc.Interface.IBody OwnerTextBody { get; } | 戻り値の型 Spire.Doc.Body → Spire.Doc.Interface.IBody |
| Spire.Doc.Body | override Spire.Doc.Table AddTable(System.Boolean showBorder) | 修飾子 [] → [override] |
| Spire.Doc.Bookmark | Bookmark(Spire.Doc.BookmarkStart bookmarkStart, Spire.Doc.BookmarkEnd bookmarkEnd) | パラメータ名 [start, end] → [bookmarkStart, bookmarkEnd] |
| Spire.Doc.Bookmark | System.String Name { get; set; } | アクセサ get → get set |
| Spire.Doc.Collections.DocumentObjectCollection | System.Void Add(Spire.Doc.Interface.IDocumentObject documentObject) | 戻り値の型 System.Int32 → System.Void;パラメータ名 [entity] → [documentObject] |
| Spire.Doc.Collections.DocumentObjectCollection | System.Boolean Contains(Spire.Doc.Interface.IDocumentObject documentObject) | パラメータ名 [entity] → [documentObject] |
| Spire.Doc.Collections.DocumentObjectCollection | System.Int32 IndexOf(Spire.Doc.Interface.IDocumentObject documentObject) | パラメータ名 [entity] → [documentObject] |
| Spire.Doc.Collections.DocumentObjectCollection | System.Void Insert(System.Int32 index, Spire.Doc.Interface.IDocumentObject documentObject) | パラメータ名 [index, entity] → [index, documentObject];新しい Obsolete(警告レベル) |
| Spire.Doc.Collections.DocumentObjectCollection | System.Void Remove(Spire.Doc.Interface.IDocumentObject documentObject) | パラメータ名 [entity] → [documentObject] |
| Spire.Doc.Collections.DocumentObjectCollection | override System.Void RemoveAt(System.Int32 index) | 新しい Obsolete(警告レベル);修飾子 [] → [override] |
| Spire.Doc.Collections.FormFieldCollection | System.Boolean ContainsName(System.String formFieldName) | パラメータ名 [itemName] → [formFieldName] |
| Spire.Doc.Collections.ParagraphCollection | override System.Void Add(Spire.Doc.Interface.IParagraph paragraph) | 戻り値の型 System.Int32 → System.Void |
| Spire.Doc.Collections.ParagraphCollection | override System.Void Insert(System.Int32 index, Spire.Doc.Interface.IParagraph paragraph) | 新しい Obsolete(警告レベル) |
| Spire.Doc.Collections.ParagraphItemCollection | Spire.Doc.Interface.IParagraphBase this[System.Int32 index] { get; } | 戻り値の型 Spire.Doc.Fields.ParagraphBase → Spire.Doc.Interface.IParagraphBase |
| Spire.Doc.Collections.TableCollection | override System.Void Add(Spire.Doc.Interface.ITable table) | 戻り値の型 System.Int32 → System.Void |
| Spire.Doc.Collections.TableCollection | System.Void Insert(System.Int32 index, Spire.Doc.Interface.ITable table) | 戻り値の型 System.Int32 → System.Void;新しい Obsolete(警告レベル) |
| Spire.Doc.Collections.TextBoxCollection | Spire.Doc.Fields.ShapeObject this[System.Int32 index] { get; } | 戻り値の型 Spire.Doc.Fields.TextBox → Spire.Doc.Fields.ShapeObject |
| Spire.Doc.CompositeDocumentObject | override System.Int32 IndexOf(Spire.Doc.Interface.IDocumentObject child) | パラメータ名 [docObject] → [child] |
| Spire.Doc.Documents.Paragraph | Spire.Doc.Interface.IParagraphBase this[System.Int32 index] { get; } | 戻り値の型 Spire.Doc.Fields.ParagraphBase → Spire.Doc.Interface.IParagraphBase |
| Spire.Doc.Documents.TextBodySelection | Spire.Doc.Interface.IBody TextBody { get; } | 戻り値の型 Spire.Doc.Body → Spire.Doc.Interface.IBody |
| Spire.Doc.Document | Spire.Doc.Interface.IParagraphBase CreateParagraphItem(Spire.Doc.Documents.ParagraphItemType itemType) | 戻り値の型 Spire.Doc.Fields.ParagraphBase → Spire.Doc.Interface.IParagraphBase |
| Spire.Doc.Document | Spire.Doc.Collections.TextBoxCollection TextBoxes { get; } | アクセサ get set → get |
| Spire.Doc.Fields.Comment | Spire.Doc.Interface.IBody Body { get; } | 戻り値の型 Spire.Doc.Body → Spire.Doc.Interface.IBody |
| Spire.Doc.Fields.Field | Spire.Doc.Fields.FieldMark Separator { get; set; } | アクセサ get → get set |
| Spire.Doc.Fields.Footnote | Spire.Doc.Interface.IBody Body { get; } | 戻り値の型 Spire.Doc.Body → Spire.Doc.Interface.IBody |
| Spire.Doc.Fields.ParagraphBase | override System.Void ApplyStyle(Spire.Doc.Documents.DefaultCharacterStyle bstyle) | 修飾子 [] → [override] |
| Spire.Doc.Fields.Shapes.ShapeBase | System.Drawing.SizeF Size { get; set; } | アクセサ get → get set |
| Spire.Doc.Fields.TextBox | Spire.Doc.Interface.IBody Body { get; } | 戻り値の型 Spire.Doc.Body → Spire.Doc.Interface.IBody |
| Spire.Doc.Interface.IParagraphCollection | System.Void Add(Spire.Doc.Interface.IParagraph paragraph) | 戻り値の型 System.Int32 → System.Void |
| Spire.Doc.Interface.IParagraph | Spire.Doc.Interface.IParagraphBase this[System.Int32 index] { get; } | 戻り値の型 Spire.Doc.Fields.ParagraphBase → Spire.Doc.Interface.IParagraphBase |
| Spire.Doc.Interface.ITableCollection | System.Void Add(Spire.Doc.Interface.ITable table) | 戻り値の型 System.Int32 → System.Void |
| Spire.Doc.Interface.ITextBox | Spire.Doc.Interface.IBody Body { get; } | 戻り値の型 Spire.Doc.Body → Spire.Doc.Interface.IBody |
| Spire.Doc.Pages.FixedLayoutColumn | Spire.Doc.Interface.IBody Body { get; } | 戻り値の型 Spire.Doc.Body → Spire.Doc.Interface.IBody |
| Spire.Doc.PermissionEnd | System.Int32 Id { get; } | 戻り値の型 System.String → System.Int32 |
| Spire.Doc.PermissionStart | System.Int32 Id { get; } | 戻り値の型 System.String → System.Int32 |
| Spire.Doc.Permission | Spire.Doc.Documents.EditingGroup EditorGroup { get; set; } | アクセサ get → get set |
| Spire.Doc.Permission | System.Int32 Id { get; } | 戻り値の型 System.String → System.Int32 |
| 型 | 旧基底クラス | 新基底クラス |
|---|---|---|
| Spire.Doc.Collections.BookmarkCollection | Spire.Doc.Collections.DocumentItemCollectionBase | Spire.Doc.OwnerHolder |
| Spire.Doc.Collections.CommentsCollection | Spire.Doc.Collections.DocumentItemCollectionBase | Spire.Doc.Collections.DocumentObjectCollection |
| Spire.Doc.Collections.DocumentObjectCollection | Spire.Doc.Collections.DocumentItemCollectionBase | Spire.Doc.OwnerHolder |
| Spire.Doc.Collections.FieldCollection | Spire.Doc.Collections.DocumentItemCollectionBase | Spire.Doc.Collections.DocumentObjectCollection |
| Spire.Doc.Collections.FormFieldCollection | Spire.Doc.Collections.DocumentItemCollectionBase | Spire.Doc.Collections.DocumentObjectCollection |
| Spire.Doc.Collections.ParagraphCollection | Spire.Doc.Collections.DocumentSubsetCollection | Spire.Doc.Collections.DocumentObjectCollection |
| Spire.Doc.Collections.PermissionCollection | Spire.Doc.Collections.DocumentItemCollectionBase | Spire.Doc.OwnerHolder |
| Spire.Doc.Collections.ShapeItemCollection | Spire.Doc.Collections.DocumentObjectCollection | Spire.Doc.Collections.DocumentItemCollectionBase |
| Spire.Doc.Collections.TableCollection | Spire.Doc.Collections.DocumentSubsetCollection | Spire.Doc.Collections.DocumentObjectCollection |
| Spire.Doc.Collections.TextBoxCollection | Spire.Doc.Collections.DocumentItemCollectionBase | Spire.Doc.Collections.DocumentObjectCollection |
| Spire.Doc.Documents.StructureDocumentTagCell | Spire.Doc.TableCell | Spire.Doc.CompositeDocumentObject |
| Spire.Doc.Documents.StructureDocumentTagInline | Spire.Doc.Fields.ParagraphBase | Spire.Doc.CompositeDocumentObject |
| Spire.Doc.Documents.StructureDocumentTagRow | Spire.Doc.TableRow | Spire.Doc.CompositeDocumentObject |
| Spire.Doc.Fields.Comment | Spire.Doc.Fields.ParagraphBase | Spire.Doc.Fields.InlineBody |
| Spire.Doc.Fields.Footnote | Spire.Doc.Fields.ParagraphBase | Spire.Doc.Fields.InlineBody |
| Spire.Doc.Fields.OMath.OfficeMath | Spire.Doc.Fields.ParagraphBase | Spire.Doc.CompositeDocumentObject |
| Spire.Doc.Fields.Shapes.ShapeBase | Spire.Doc.Fields.ParagraphBase | Spire.Doc.CompositeDocumentObject |
| Spire.Doc.Fields.TableOfContent | Spire.Doc.Fields.ParagraphBase | Spire.Doc.Fields.Field |
| Spire.Doc.HeadersFooters | Spire.Doc.OwnerHolder | Spire.Doc.Collections.DocumentObjectCollection |
114 の型にメタデータ変更があります。パブリックインターフェースレベルでの主な追加/削除:
| インターフェース | 新たに実装する型の数 | 備考 |
|---|---|---|
| Spire.Doc.Interface.IDocCloneable | 114 | 新しい実装 |
| System.Collections.Generic.IEnumerable<Spire.Doc.DocumentObject> | 37 | 新しい実装 |
| Spire.Doc.Formatting.Revisions.IRevisionTracking | 35 | 新しい実装 |
| Spire.Doc.Interface.ICollectionBase | 29 | 新しい実装 |
| Spire.Doc.Interface.IDocumentObjectCollection | 29 | 新しい実装 |
| System.Collections.IEnumerable | 24 | 新しい実装 |
| Spire.Doc.Interface.IBody | 7 | 新しい実装 |
| Spire.Doc.Interface.ITextRange | 3 | 新しい実装 |
| Spire.Doc.Documents.ISectionCollection | 1 | 新しい実装 |
| Spire.Doc.Interface.IField | 1 | 新しい実装 |
| インターフェース | 実装を失う型の数 | 備考 |
|---|---|---|
| Spire.Doc.Documents.IWSectionCollection | 1 | 実装を失う |
| Spire.Doc.Interface.IDocumentObjectCollection | 1 | 実装を失う |
| Spire.Doc.Interface.ICollectionBase | 1 | 実装を失う |
| Spire.Doc.Interface.IBody | 1 | 実装を失う |
これらのうち、Spire.Doc.Interface.IDocCloneable は 114 の型で新たに実装され、IRevisionTracking は 35 の型で新たに実装され、IBody は 7 つの新しい実装を獲得し(StructureDocumentTag、Comment、Footnote、DocOleObject、DocPicture、ShapeObject、TextBox)、StructureDocumentTagCell は IBody を失います。ITextRange は 3 つの新しい実装を獲得し(Break、Symbol、TableOfContent)、IField は 1 つの新しい実装を獲得します(TableOfContent)。
非パブリック/難読化インターフェース(
spr...)はこの表にカウントされていません。完全な生のインターフェースリストは JSON 成果物にあります。
| 型 | 失われたスロット |
|---|---|
| Spire.Doc.Documents.StructureDocumentTagCell | 27 |
| Spire.Doc.Collections.ShapeItemCollection | 11 |
| Spire.Doc.Documents.StructureDocumentTagRow | 11 |
| Spire.Doc.PermissionEnd | 6 |
| Spire.Doc.PermissionStart | 6 |
| Spire.Doc.BookmarkEnd | 5 |
| Spire.Doc.BookmarkStart | 5 |
| Spire.Doc.Break | 5 |
| Spire.Doc.Collections.CellCollection | 5 |
| Spire.Doc.Collections.RowCollection | 5 |
| Spire.Doc.DocumentObject | 5 |
| Spire.Doc.Documents.CommentMark | 5 |
| Spire.Doc.Fields.CheckBoxFormField | 5 |
| Spire.Doc.Fields.ControlField | 5 |
| Spire.Doc.Fields.DropDownFormField | 5 |
| Spire.Doc.Fields.Field | 5 |
| Spire.Doc.Fields.FieldMark | 5 |
| Spire.Doc.Fields.FormField | 5 |
| Spire.Doc.Fields.IfField | 5 |
| Spire.Doc.Fields.MergeField | 5 |