Spire.Doc バージョン 14.10.9 — 14.9.11 との詳細なアップグレード変更点

概要

このアップグレードには、いくつかの高リスクなパブリック API 変更が含まれています。最もリスクが高い項目は DocumentObjectType 列挙型の全面的な再番号付けです。再コンパイルしない場合、サイレントな動作エラーを引き起こします。

1. 比較対象とファイル情報

項目 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 がない場合、古いアプリケーションは読み込み時に失敗する可能性があります。

2. 統計概要

指標 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% 相互検証のみに使用;結論には影響しない

カウント規約:

3. 最優先の破壊的変更

3.1 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 を意味するようになりました。デフォルト値、数値比較、シリアライズ/デシリアライズ、データベース保存、キャッシュに依存するコードは移行が必要です。

修正:

  1. すべてのコンシューマーは新しい DLL に対して再コンパイルする必要があります。DLL の置き換えだけでは不十分です。
  2. コードから数値リテラル((DocumentObjectType)4 など)を削除し、定数名を使用します。
  3. 列挙値が永続化されたことがある場合は、「旧定数名 → 新定数名」のマッピングを構築し、新しい値を取得します。数値を直接引き継がないでください。
  4. switch ステートメントが新しい値をカバーしていることを確認します。旧値 63(Any)は新バージョンに対応するメンバーがありません。

3.2 権限識別子が 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 がすべて同じ整数を使用するようにする必要があります。

3.3 SDT(構造化文書タグ)モデルの再構築

削除された型: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);
// 具体的なセルの書式設定は子ノードを通じて行うか、文書構造を再設計する必要がある;回帰テストが必要

3.4 コレクション階層の再構築

主要な変更:

基底クラス変更の概要(コレクション関連):

型 旧基底クラス/状態 新基底クラス/状態 結果
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 に変更されたメンバー(バイナリ破壊):

移行例:

// 古いコード:戻り値のインデックスに依存
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);

3.5 基底クラスの変更(19 型)

基底クラスの変更は、継承メンバー、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

主な影響:

3.6 基底クラスメンバーの下方移動と連鎖的損失

以下のメンバーが DocumentObject から CompositeDocumentObject に下方移動します:

結果として、複合型(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 が発生する可能性が非常に高いです。したがって、「新しい基底クラスを通じて依然到達可能」というのは再コンパイルされたソースにのみ当てはまり、古いバイナリを安全にするものではありません。

3.7 戻り値の型の変更(21 項目)

型 メンバー 旧戻り値の型 新戻り値の型
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

パターン概要:

これらすべての変更は CLR メソッドシグネチャを変更します(戻り値の型はシグネチャの一部です)。古いバイナリは MissingMethodException を発生させ、ソースレベルでは通常、明示的なキャストまたはインターフェースへの切り替えが必要です。

3.8 型の削除と名前空間の移行

削除された 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 —

主なポイント:

4. その他の破壊的および動作変更

4.1 コンストラクタとパラメータ型の変更

型 旧コンストラクタ 新コンストラクタ
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)

パラメータ名の変更(名前付き引数のみに影響;ソースは通常互換):

4.2 直接宣言された削除(54 項目)

これらは古い型自体に宣言されていたメンバーで、新バージョンで削除されたものです。基底クラス変更により古い型が失う継承メンバーは除外されます。後者は実効メンバーサーフェス(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 のコレクション機能には基底クラスのフォールバックがありません。

4.3 アクセサの変更

型 メンバー 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.4 廃止マーカー(警告レベル)

以下の 4 つのメンバーに [Obsolete] が追加されました(IsError = false、警告のみ):

これは新バージョンの API の方向性を反映しています:コレクション自体を通じた追加/削除は徐々に CompositeDocumentObject の DOM ツリー操作に取って代わられています。

4.5 動作/セマンティック変更

5. 互換性影響分析

5.1 バイナリ互換性

変更 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 を構成してアセンブリを読み込めたとしても、上記のシグネチャ/継承の変更により初回使用時に例外が発生します。さらに列挙の問題は例外すら発生しない可能性があり、より有害です。

5.2 ソース互換性

5.3 動作互換性

すべてのソースがコンパイルできたとしても、以下の動作については回帰テストが必要です:

  1. SDT 行/セルのテーブルレイアウト、幅、結合、分割、XHTML 挿入。
  2. 権限範囲(開始/終了/権限)と編集者 ID のマッチング。
  3. コメント/脚注のボディ構造、および CommentedItems と旧 Items の違い。
  4. TOC が Field になったことによる更新動作。
  5. 図形/テキストボックス/画像の IBody としての子コンテンツとテキスト抽出。
  6. コレクション Add 後のインデックス、順序、イベント/キャッシュ動作。
  7. ヘッダー/フッターコレクションの列挙と Count。
  8. 文書走査中の DocumentObjectType 分岐。

5.4 互換性マトリックス

変更 バイナリ ソース 動作 対応レベル
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

6. 移行ガイド

6.1 移行順序(推奨)

ステップ アクション 主な確認事項
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、ヘッダー/フッター、テキストボックス

6.2 主要なコード移行

(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;

6.3 自動移行できない / 手動設計が必要な項目

  1. 永続化された DocumentObjectType 値:数値的に引き継ぐのではなく、セマンティックにマッピングする必要があります。
  2. SDT Row/Cell のテーブル機能:新しいモデルは CellFormat、RowFormat、Cells、結合/分割などを提供しなくなりました。再設計するか代替 API を見つける必要があります。
  3. Style.NameToBuiltIn:同等の代替なし;名前マッピングテーブルを維持(組み込みスタイル名と列挙名は常に一致するとは限らない)。
  4. ApplyCharacterFormat:図形/コメント/脚注などに同等のメソッドなし;CharacterFormat を項目ごとにコピーしても元の動作を完全に再現できない可能性があります。
  5. ToString(string separator):直接の代替なし;子を走査して自分で連結します。
  6. ShapeItemCollection:パブリック型は依然存在しますが、すべてのコレクション操作がなくなり、この型を返すパブリックメンバーもありません。リフレクション/内部パスで使用している場合は、別のコレクションに切り替えてください。
  7. Permission ID の割り当て:string → integer はデータモデルの変更であり、一意性と移行戦略が必要です。

7. 非破壊的拡張(利用可能)

7.1 DOM ツリー操作

DocumentObject に GetText()、Remove()、GetAncestor(...)、GetNextInPreOrder(...)、GetPreviousInPreOrder(...)、HasChildNodes が追加されました。CompositeDocumentObject に AppendChild、PrependChild、InsertBefore、InsertAfter、RemoveChild、RemoveAllChildren、RemoveChildRange、GetChild、GetChildNodes、整数インデクサ、および ChildObjects/FirstChild/LastChild が追加されました。この API グループは、コレクションの追加/削除と手動走査コードの一部を置き換えます。

7.2 リビジョントラッキング

新しい IRevisionTracking(8 メンバー)が 35 の型で実装されています:IsInsertRevision、IsDeleteRevision、IsMoveFromRevision、IsMoveToRevision、InsertRevision、DeleteRevision、MoveFromRevision、MoveToRevision。コメント、脚注、段落、フィールド、図形、透かしなどがすべてリビジョンを統一的に処理できます。

7.3 型付き範囲コレクション

7.4 コレクションとクエリの拡張

7.5 書き込み可能なプロパティと便利メンバー

8. 完全な変更リストとツール成果物

成果物 パス 備考
このレポート 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 は各行の推奨処理を示します。

9. 方法論と検証

9.1 エクスポート方法

  1. Assembly.ReflectionOnlyLoadFrom を使用してターゲット DLL をリフレクション専用で読み込み、ビジネスコードを実行しない。
  2. GetTypes() の前に GetReferencedAssemblies() を走査して依存関係をプリロード;ローカルに存在する依存関係は ReflectionOnlyLoadFrom にフォールバック。
  3. BindingFlags.Public | DeclaredOnly を使用して型自体が宣言したメンバーのみをエクスポート;コンストラクタはパブリックコンストラクタのみ取得。
  4. ネスト型の場合、DeclaringType チェーン全体がパブリックであることを要求し、内部型内のパブリックネスト型が誤ってエクスポート型としてカウントされないようにする(修正後 508)。
  5. ECMA-334 XML ドキュメント ID(T:/M:/P:/F:/E:)を生成し、公式 XML ドキュメントと相互検証。
  6. 「実効メンバーサーフェス」を計算:アセンブリ内の基底クラスチェーンに沿ってメンバーをマージ;コンストラクタは継承されない;型自体または祖先が新バージョンで同じ名前とシグネチャのメンバーを依然提供する場合にのみ「依然アクセス可能」とカウント。

9.2 検証

付録 A:追加された型(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 —

A.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 境界マーク。

付録 B:削除された型(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 —

備考:DocumentSubsetCollection は旧 ParagraphCollection/TableCollection の基底クラス;SDTContent/SDTInlineContent は SDT コンテンツラッパー;CompoundFile.IDocCloneable は Interface に移動;IWSectionCollection は ISectionCollection に置き換え;ITextBoxItemCollection はパブリック実装者がいなかった;2 つのネスト型は旧コレクション変更通知のパブリック成果物。

付録 C:追加されたメンバー(178)

C.1 追加された型のメンバー(37)

これら 37 のメンバーはすべてこのバージョンで追加された 8 つの型にあります。完全なリストは付録 A.1 にあり、ここでは繰り返しません。

C.2 既存型に追加されたメンバー(141)

型 種類 追加されたメンバー 廃止
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; } —

付録 D:直接宣言された削除(54 項目)

これらのメンバーは古い型自体に宣言されており、新しいバージョンではその型も祖先も提供しません。基底クラス変更により失われた継承メンバーはこの表には含まれません。実効メンバーサーフェス統計を参照してください。

型 削除されたメンバー 推奨される代替
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) を使用

付録 E:継承により依然到達可能な削除(29 項目)

これらのメンバーは旧バージョンで何らかの型に宣言されていましたが、新バージョンではその型または祖先が同じ名前とシグネチャのメンバーを依然提供しているため、通常は再コンパイルのみが必要です。ただし、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 シグネチャ変更なし;通常は再コンパイルのみ

付録 F:非列挙変更(37 項目)

型 メンバー 変更
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

付録 G:基底クラスの変更(19 項目)

型 旧基底クラス 新基底クラス
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

付録 H:型メタデータインターフェース変更の概要

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 成果物にあります。

付録 I:型ごとの失われた実効メンバーサーフェス(トップ 20)

型 失われたスロット
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