「Attributeを適用する」

MTA(Multi Threaded Apartment)ではOLEを介した何かが出来ない、ということで、STA(Single Threaded Apartment)にプログラムを直すことになりました。
さいわい、以前読んだApplication Domainの説明の中でThread Apartmentの話がいっしょに載っていたので理屈は判ったのですが、じゃぁ、実際にはどうするのか、というはなしが全然見当つかずにしばらく悩んでみたり。
エラーメッセージによると

MainメソッドにSTAThreadAttributeを適用してください

……らしいのですが、そもそも、Attributeの適用ってのはいったい何なのか見当つきません。確かにMSDNにもこのAttributeを適用すればいいということは書いてあるのですが、当の適用の方法が全然引っかからないという。


しばらく悩んだ末、結論としては以下「らしい」ということは判りました。

  • Attributeは、「ほげほげAttribute」という名前のクラスのことらしい。
  • 「[]」の中に「ほげほげ」の部分だけを書くと、適用されるらしい
  • AttributeはMSDNでは「属性」と全部日本語訳されているらしい(^^;)

……確かに「属性の適用」で引っかかるという(^^;)。うわーん、用語が翻訳されてるなんて気づかないよー。
ちなみに、STAThreadAttributeを適用するにはこんな感じです。

[STAThread(true)]
public static void Main()
{
}

あ、.Net Compact FrameworkはMTAThreadAttributeはあっても、STAThreadAttributeはないので、このままではコンパイルは通りませんが。それ以前にOLEを介していない(はず)ので、こんなことしなくてもいいんですけど。