特別な構文(get- または set- アクセッサ)が必要なプロパティを使用しようとすると、次のようなエラー メッセージが表示されます。
Compiler Error CS0117: 'type' does not contain a definition for 'identifier'
プロパティで get- または set- アクセッサを使用する必要がある状況は次の 2 つです。
プロパティで取得と設定に異なるクラスまたはデータ型を使用する場合(「プロパティの実装の違い」を参照)
プロパティが入力引数を取る場合(「入力引数のあるプロパティ」を参照)
リファレンス セクションの「C# 構文」のセクションで、正しい構文を確認してください。 さらに、Visual Studio.NET の ObjectBrowser またはオートコンプリート機能を使用することもできます。
enum または文字列定数の前にそのモジュール名が付いていない場合は、次のようなエラー メッセージが表示されます。
Compiler Error CS0103: The name 'identifier' does not exist in the current context
enum の場合、モジュール名を含める必要があります。 たとえば以下のようになります。
siMenuAnchorPoints.siMenuTbGetPrimitiveCurveID siToolbarControl.siTBCtrlBlankSeparator siImageBitDepth.siImageBitDepthFloat16 siClassID.siGeometryID // etc.
文字列定数の場合、StringModule を使用する必要があります。たとえば、次のようになります。
StringModule.siBendOpType StringModule.siCurveFilter StringModule.siLocalType StringModule.siUIButtonDisable // etc.
オブジェクト モデルのメソッドを呼び出すときにオプションの引数を省略すると、次のようなエラー メッセージが表示されます。
Compiler Error CS1501 No overload for method 'method' takes 'number' arguments
取得と設定に異なるデータ型またはクラスを必要とするプロパティを使用した場合(Preferences.Categories や非推奨の XSIApplication.ActiveProject など)、次のようなエラー メッセージが表示されます。
Compiler Error CS1545: Property, indexer, or event 'property' is not supported by the language; try directly calling accessor methods 'set accessor' or 'get accessor'
場合によっては、この問題を解決する代替のメソッドやプロパティが存在することもあります。たとえば、XSIApplication.ActiveProject2 は、Property オブジェクトを返し、設定する代替プロパティです。
代替のメソッドやプロパティがない場合は、プロパティに関連付けられているアクセッサ メソッドを使用します。 アクセッサ メソッドを呼び出すには、get_ および set_ をプロパティ名の前に追加します。
// Raises compiler error CS1545: Preferences pref = xsi.Preferences; ProjectItemCollection proj_itms = pref.Categories; // Special syntax as a workaround ProjectItemCollection proj_itms = pref.get_Categories; pref.set_Categories( proj_itms );
詳細については、「プロパティの実装の違い」を参照してください。
Softimage オブジェクト モデル アセンブリが適切にインストールされていないか参照されていない場合、または using ディレクティブを使用して参照するのを忘れた場合は、次のようなエラー メッセージが表示されます。
Compiler Error CS0246: The type or namespace name 'type/namespace' could not be found (are you missing a using directive or an assembly reference?)
Compiler Error CS0234: The type or namespace name 'name' does not exist in the namespace 'namespace' (are you missing an assembly reference?)
次のディレクティブが .cs ソース ファイル内に存在するかどうかを確認します(プラグイン ウィザードは、自動的にこれらのディレクティブを含めます)。
using XSIOM; // Softimage object model using XSIMath; using XSIUtil;
ディレクティブが存在した場合、アセンブリが適切に参照されていないかインストールされていない可能性があります。 ソリューション エクスプローラで参照フォルダを開きます。
使用しようとしているアセンブリがリストにない場合は、右クリックしてリファレンスをアセンブリに追加できます。 アセンブリがリストにある場合は、適切にインストールされていない可能性があります。 この問題を解決するには、アセンブリが適切にインストールされているかどうかを確認する必要があります。適切にインストールされていない場合は、該当するアセンブリを GAC に追加します。