• R/O
  • SSH
  • HTTPS

drfx: Commit


Commit MetaInfo

Révision182 (tree)
l'heure2010-03-23 23:37:02
Auteursasaminn

Message de Log

CHANGE: 翻訳ルールクラス名を変更

保守性向上のため、翻訳ルールクラスの名前を変更した。

Change Summary

Modification

--- drfx/trunk/test/unit/Core.Tests.Unit/Translation/TranslationRuleTest.cs (revision 181)
+++ drfx/trunk/test/unit/Core.Tests.Unit/Translation/TranslationRuleTest.cs (nonexistent)
@@ -1,46 +0,0 @@
1-using NUnit.Framework;
2-using Sasa.QualityTools.DrFx.Core.Translation;
3-using System;
4-using System.Collections.Generic;
5-
6-namespace Sasa.QualityTools.DrFx.Core.Tests.Unit.Translation
7-{
8- [TestFixture]
9- public class TranslationRuleTest
10- {
11- [Test]
12- public void TestParseXmlContents()
13- {
14- const string contents =
15- @"<?xml version=""1.0"" encoding=""utf-8"" ?>" +
16- @"<Rules>" +
17- @" <Rule CheckId=""CA0000"" Category=""Category1"">" +
18- @" <Name>Name1</Name>" +
19- @" <Resolution>" +
20- @" <Content>Content1</Content>" +
21- @" <Pattern>Pattern1</Pattern>" +
22- @" </Resolution>" +
23- @" <Resolution>" +
24- @" <Content>Content2</Content>" +
25- @" <Pattern>Pattern2</Pattern>" +
26- @" </Resolution>" +
27- @" </Rule>" +
28- @"</Rules>";
29-
30- List<TranslationRule> rules = new List<TranslationRule>(TranslationRule.Parse(contents));
31-
32- Assert.AreEqual(1, rules.Count);
33- TranslationRule rule = rules[0];
34- Assert.AreEqual("CA0000", rule.CheckId);
35- Assert.AreEqual("Category1", rule.Category);
36- Assert.AreEqual("Name1", rule.Name);
37-
38- List<Resolution> resolutions = new List<Resolution>(rule.Resolutions);
39- Assert.AreEqual(2, resolutions.Count);
40- Assert.AreEqual("Content1", rule.Resolutions[0].Content);
41- Assert.AreEqual("Pattern1", rule.Resolutions[0].Pattern);
42- Assert.AreEqual("Content2", rule.Resolutions[1].Content);
43- Assert.AreEqual("Pattern2", rule.Resolutions[1].Pattern);
44- }
45- }
46-}
--- drfx/trunk/test/unit/Core.Tests.Unit/Translation/DrFxRuleTest.cs (nonexistent)
+++ drfx/trunk/test/unit/Core.Tests.Unit/Translation/DrFxRuleTest.cs (revision 182)
@@ -0,0 +1,46 @@
1+using NUnit.Framework;
2+using Sasa.QualityTools.DrFx.Core.Translation;
3+using System;
4+using System.Collections.Generic;
5+
6+namespace Sasa.QualityTools.DrFx.Core.Tests.Unit.Translation
7+{
8+ [TestFixture]
9+ public class DrFxRuleTest
10+ {
11+ [Test]
12+ public void TestParseXmlContents()
13+ {
14+ const string contents =
15+ @"<?xml version=""1.0"" encoding=""utf-8"" ?>" +
16+ @"<Rules>" +
17+ @" <Rule CheckId=""CA0000"" Category=""Category1"">" +
18+ @" <Name>Name1</Name>" +
19+ @" <Resolution>" +
20+ @" <Content>Content1</Content>" +
21+ @" <Pattern>Pattern1</Pattern>" +
22+ @" </Resolution>" +
23+ @" <Resolution>" +
24+ @" <Content>Content2</Content>" +
25+ @" <Pattern>Pattern2</Pattern>" +
26+ @" </Resolution>" +
27+ @" </Rule>" +
28+ @"</Rules>";
29+
30+ List<DrFxRule> rules = new List<DrFxRule>(DrFxRule.Parse(contents));
31+
32+ Assert.AreEqual(1, rules.Count);
33+ DrFxRule rule = rules[0];
34+ Assert.AreEqual("CA0000", rule.CheckId);
35+ Assert.AreEqual("Category1", rule.Category);
36+ Assert.AreEqual("Name1", rule.Name);
37+
38+ List<Resolution> resolutions = new List<Resolution>(rule.Resolutions);
39+ Assert.AreEqual(2, resolutions.Count);
40+ Assert.AreEqual("Content1", rule.Resolutions[0].Content);
41+ Assert.AreEqual("Pattern1", rule.Resolutions[0].Pattern);
42+ Assert.AreEqual("Content2", rule.Resolutions[1].Content);
43+ Assert.AreEqual("Pattern2", rule.Resolutions[1].Pattern);
44+ }
45+ }
46+}
--- drfx/trunk/test/unit/Core.Tests.Unit/Translation/TranslatorTest.cs (revision 181)
+++ drfx/trunk/test/unit/Core.Tests.Unit/Translation/TranslatorTest.cs (revision 182)
@@ -41,7 +41,7 @@
4141 @"</Rules>";
4242
4343 Translator translator = new Translator();
44- translator.AddRules(TranslationRule.Parse(ruleContents));
44+ translator.AddRules(DrFxRule.Parse(ruleContents));
4545 return translator.TranslateIssue(category, checkId, issue);
4646 }
4747
@@ -89,7 +89,7 @@
8989 @"</FxCopReport>";
9090
9191 Translator translator = new Translator();
92- translator.AddRules(TranslationRule.Parse(ruleContents));
92+ translator.AddRules(DrFxRule.Parse(ruleContents));
9393 Assert.AreEqual(expected, translator.Translate(reportContents));
9494 }
9595
--- drfx/trunk/src/Explorer/Rule/FxCopRuleLoader.cs (revision 181)
+++ drfx/trunk/src/Explorer/Rule/FxCopRuleLoader.cs (revision 182)
@@ -48,12 +48,12 @@
4848 public void Translate(IEnumerable<FxCopRule> rules)
4949 {
5050 // TODO: 再検討
51- List<TranslationRule> translationRules = new List<TranslationRule>();
51+ List<DrFxRule> translationRules = new List<DrFxRule>();
5252 string directory = Path.Combine(Path.GetDirectoryName(GetType().Assembly.Location), "Resources");
5353 foreach (string file in Directory.GetFiles(directory, "*.xml"))
5454 {
5555 string rule = File.ReadAllText(file);
56- translationRules.AddRange(TranslationRule.Parse(rule));
56+ translationRules.AddRange(DrFxRule.Parse(rule));
5757 }
5858 var lookup = translationRules.ToLookup(r => r.CheckId);
5959
--- drfx/trunk/src/Console/Program.cs (revision 181)
+++ drfx/trunk/src/Console/Program.cs (revision 182)
@@ -45,7 +45,7 @@
4545 foreach (string file in Directory.GetFiles(directory, "*.xml"))
4646 {
4747 string rule = File.ReadAllText(file);
48- this.translator.AddRules(TranslationRule.Parse(rule));
48+ this.translator.AddRules(DrFxRule.Parse(rule));
4949 }
5050 }
5151
--- drfx/trunk/src/Core/Resources/DrFxRules.xml (nonexistent)
+++ drfx/trunk/src/Core/Resources/DrFxRules.xml (revision 182)
@@ -0,0 +1,2150 @@
1+<?xml version="1.0" encoding="utf-8"?>
2+<!--
3+ DrFx - FxCop Report Translator and Visualizer.
4+ Copyright (C) 2010 Sasa Yuan
5+
6+ This program is free software: you can redistribute it and/or modify
7+ it under the terms of the GNU General Public License as published by
8+ the Free Software Foundation, either version 3 of the License, or
9+ (at your option) any later version.
10+
11+ This program is distributed in the hope that it will be useful,
12+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14+ GNU General Public License for more details.
15+
16+ You should have received a copy of the GNU General Public License
17+ along with this program. If not, see <http://www.gnu.org/licenses/>.
18+-->
19+<Rules>
20+ <Rule CheckId="CA1000" Category="Microsoft.Design">
21+ <Name>ジェネリック型には static メンバーを宣言しない</Name>
22+ <Reason>static メンバーを使用する際に、必ずジェネリック型に型パラメータを指定しなければならず、API の使い勝手が低下するからです。</Reason>
23+ <Resolution>
24+ <Content>{1} から {0} を削除するか、{0} をインスタンスメンバーに変更してください。</Content>
25+ <Pattern>^Remove (.+?) from (.+?) or make it an instance member.$</Pattern>
26+ </Resolution>
27+ </Rule>
28+ <Rule CheckId="CA1001" Category="Microsoft.Design">
29+ <Name>Dispose 可能なフィールドが定義されている型では IDisposable を実装する</Name>
30+ <Reason>Dispose 可能な (IDisposable インターフェースを実装した型の) フィールドを持っているということは、間接的にアンマネージリソースを保持していることになります。そのため、この型の利用者がそのような間接的に参照されているアンマネージリソースを明示的に破棄できるよう、IDisposable インターフェースを実装すべきです。</Reason>
31+ <Resolution>
32+ <Content>{0} で IDisposable を実装してください。{0} では IDisposable を実装した {1} 型のメンバーが定義されています。{2} がリリース済みである場合、IDisposable を実装したメンバーの追加は慎重に検討してから行ってください。この型を利用している既存のコードを変更せざるを得なくなる可能性があります。</Content>
33+ <Pattern>^Implement IDisposable on (.+?) because it creates members of the following IDisposable types: (.+?)\. If (.+?) has previously shipped, adding new members that implement IDisposable to this type is considered a breaking change to existing consumers\.$</Pattern>
34+ </Resolution>
35+ <Resolution>
36+ <Content>{0} で IDisposable を実装してください。{0} では IDisposable を実装した {1} 型のメンバーが定義されています。</Content>
37+ <Pattern>^Implement IDisposable on (.+?) because it creates members of the following IDisposable types: (.+?)\.$</Pattern>
38+ </Resolution>
39+ </Rule>
40+ <Rule CheckId="CA1002" Category="Microsoft.Design">
41+ <Name>ジェネリックリストを公開しない</Name>
42+ <Resolution>
43+ <Content>{0} 型の {1} を Collection&lt;T&gt;、ReadOnlyCollection&lt;T&gt;、もしくは KeyedCollection&lt;K,V&gt; を使うように変更してください。</Content>
44+ <Pattern>^Change (.+?) in (.+?) to use Collection&lt;T&gt;, ReadOnlyCollection&lt;T&gt; or KeyedCollection&lt;K,V&gt;$</Pattern>
45+ </Resolution>
46+ </Rule>
47+ <Rule CheckId="CA1003" Category="Microsoft.Design">
48+ <Name>ジェネリックイベントハンドラデリゲートを使用する</Name>
49+ <Resolution>
50+ <Content>Visual Basic では Event MyEvent(ByVal Sender As Object, ByVal e as MyEventArgs) という書き方でイベントを作成すると、イベントハンドラデリゲートを内部的に生成しますが、このデリゲートの利用は推奨しません。イベントの定義を Event MyEvent As EventHandler(Of MyEventArgs) のように変更して、内部的に生成されるイベントハンドラデリゲート {0} ではなくジェネリックイベントハンドラデリゲートを使うようにしてください。</Content>
51+ <Pattern>^Visual Basic generates EventHandler delegates for events that use the following pattern: Event MyEvent\(ByVal Sender As Object, ByVal e as MyEventArgs\)\. Change the event that defines EventHandler (.+?) to use EventHandler&lt;T&gt; by defining the event type explicitly, e\.g\. Event MyEvent As EventHandler\(Of MyEventArgs\)\.$</Pattern>
52+ </Resolution>
53+ <Resolution>
54+ <Content>イベントハンドラデリゲート {0} を削除し、代わりにジェネリックイベントハンドラデリゲート EventHandler&lt;T&gt; を使ってください。</Content>
55+ <Pattern>^Remove (.+?) and replace its usage with EventHandler&lt;T&gt;$</Pattern>
56+ </Resolution>
57+ </Rule>
58+ <Rule CheckId="CA1004" Category="Microsoft.Design">
59+ <Name>ジェネリックメソッドでは型引数を宣言する</Name>
60+ <Resolution>
61+ <Content>{0} メソッドに型 {1} の引数を追加し、メソッド呼び出し時に型を明示的に指定しなくて済むよう、{0} メソッドの設計変更を検討してください。</Content>
62+ <Pattern>^Consider a design where (.+?) doesn't require explicit type parameter (.+?) in any call to it\.$</Pattern>
63+ </Resolution>
64+ </Rule>
65+ <Rule CheckId="CA1005" Category="Microsoft.Design">
66+ <Name>過度な型引数を持ったジェネリック型を定義しない</Name>
67+ <Resolution>
68+ <Content>型引数が3つ以上にならないよう、{0} の設計変更を検討してください。</Content>
69+ <Pattern>^Consider a design where (.+?) has no more than 2 type parameters\.$</Pattern>
70+ </Resolution>
71+ </Rule>
72+ <Rule CheckId="CA1006" Category="Microsoft.Design">
73+ <Name>ネストされたジェネリック型をシグネチャに含めない</Name>
74+ <Resolution>
75+ <Content>ネストされたジェネリック型 {1} がシグネチャに含まれなくなるよう、{0} の設計変更を検討してください。</Content>
76+ <Pattern>^Consider a design where (.+?) doesn't nest generic type (.+?)\.$</Pattern>
77+ </Resolution>
78+ </Rule>
79+ <Rule CheckId="CA1007" Category="Microsoft.Design">
80+ <Name>Object 型を参照渡ししない</Name>
81+ <Resolution>
82+ <Content>{0} で参照渡ししている System.Object 型引数をジェネリックに変更することを検討してください。</Content>
83+ <Pattern>^Consider using generics instead of a reference to System\.Object in (.+?)\.$</Pattern>
84+ </Resolution>
85+ </Rule>
86+ <Rule CheckId="CA1008" Category="Microsoft.Design">
87+ <Name>列挙型に値が 0 のメンバーを定義する</Name>
88+ <Resolution>
89+ <Content>列挙型 {0} の {1} の名前を 'None' に変更してください。</Content>
90+ <Pattern>^In enum (.+?), change the name of (.+?) to 'None'\.$</Pattern>
91+ </Resolution>
92+ <Resolution>
93+ <Content>列挙型 {0} で定義されている値が 0 のメンバーを 'None' 以外全て削除してください。</Content>
94+ <Pattern>^Remove all members that have the value zero from (.+?) except for one member that is named 'None'\.$</Pattern>
95+ </Resolution>
96+ <Resolution>
97+ <Content>列挙型 {0} に値が 0 のメンバーを追加してください ('None' という名前を付けることをお勧めします)。</Content>
98+ <Pattern>^Add a member to (.+?) that has a value of zero with a suggested name of 'None'\.$</Pattern>
99+ </Resolution>
100+ </Rule>
101+ <Rule CheckId="CA1009" Category="Microsoft.Design">
102+ <Name>イベントハンドラを適切なシグネチャで宣言する</Name>
103+ <Resolution>
104+ <Content>{0} の戻り値の型を void に変更してください。</Content>
105+ <Pattern>^Change (.+?) to return void\.$</Pattern>
106+ </Resolution>
107+ <Resolution>
108+ <Content>{0} の最初の引数は 'sender' という名前の object 型の引数にしてください。</Content>
109+ <Pattern>^Declare the first parameter of (.+?) as an object named 'sender'\.$</Pattern>
110+ </Resolution>
111+ <Resolution>
112+ <Content>{0} の第2引数は 'e' という名前にし、EventArgs もしくはその派生型にしてください。</Content>
113+ <Pattern>^Declare the second parameter of (.+?) as an EventArgs, or an instance of a type that extends EventArgs, named 'e'\.$</Pattern>
114+ </Resolution>
115+ <Resolution>
116+ <Content>{0} の3つ目以降の引数を削除してください。</Content>
117+ <Pattern>^Remove all but the first two parameters of (.+?)\.$</Pattern>
118+ </Resolution>
119+ </Rule>
120+ <Rule CheckId="CA1010" Category="Microsoft.Design">
121+ <Name>コレクションではジェネリックインターフェースを実装する</Name>
122+ <Resolution>
123+ <Content>{0} で {1}&lt;T&gt; を実装してください。</Content>
124+ <Pattern>^(.+?) appears to be a non-generic, strongly typed collection\. Add an implementation to the instance of (.+?)&lt;T&gt; where T is the underlying element type of (.+?)\.$</Pattern>
125+ </Resolution>
126+ </Rule>
127+ <Rule CheckId="CA1011" Category="Microsoft.Design">
128+ <Name>引数の型を基底型に変更することを検討する</Name>
129+ <Resolution>
130+ <Content>{1} メソッドの引数 {0} を {2} から基底型の {3} に変更することを検討してください。このメソッドでは {3} で実装されているメンバーしか使用していません。</Content>
131+ <Pattern>^Consider changing the type of parameter (.+?) in (.+?) from (.+?) to its base type (.+?)\. This method appears to only require base class members in its implementation\. Suppress this violation if there is a compelling reason to require the more derived type in the method signature\.$</Pattern>
132+ </Resolution>
133+ </Rule>
134+ <Rule CheckId="CA1012" Category="Microsoft.Design">
135+ <Name>抽象型にはコンストラクタを定義しない</Name>
136+ <Resolution>
137+ <Content>{0} の public コンストラクタを全て protected に変更してください。</Content>
138+ <Pattern>^Change the accessibility of all public constructors in (.+?) to protected\.$</Pattern>
139+ </Resolution>
140+ </Rule>
141+ <Rule CheckId="CA1013" Category="Microsoft.Design">
142+ <Name>+ と - をオーバーロードしている場合には == もオーバーロードする</Name>
143+ <Resolution>
144+ <Content>{1} と同じ引数を持つ == 演算子用のオーバーロードメソッドを追加することを {0} に 検討してください。</Content>
145+ <Pattern>^Consider adding an overload of the equality operator for (.+?) that takes the same parameters as (.+?)\.$</Pattern>
146+ </Resolution>
147+ </Rule>
148+ <Rule CheckId="CA1014" Category="Microsoft.Design">
149+ <Name>アセンブリに CLSCompliant 属性を付加する</Name>
150+ <Resolution>
151+ <Content>{0} に CLSCompliant 属性を付加してください。</Content>
152+ <Pattern>^Mark (.+?) with CLSCompliant\(true\) because it exposes externally visible types\.$</Pattern>
153+ </Resolution>
154+ </Rule>
155+ <Rule CheckId="CA2210" Category="Microsoft.Design">
156+ <Name>アセンブリには有効な厳密名をつける</Name>
157+ <Resolution>
158+ <Content>厳密な名前キーで {0} に署名してください。</Content>
159+ <Pattern>Sign (.+?) with a strong name key.</Pattern>
160+ </Resolution>
161+ <Resolution>
162+ <Content>デプロイする前に {0} に有効な厳密名がつけられていることを確認してください。</Content>
163+ <Pattern>^Verify that (.+?) has a valid strong name before deploying.$</Pattern>
164+ </Resolution>
165+ </Rule>
166+ <Rule CheckId="CA1016" Category="Microsoft.Design">
167+ <Name>アセンブリに AssemblyVersion 属性を付加する</Name>
168+ <Resolution>
169+ <Content>{0} に AssemblyVersion 属性を付加してください。</Content>
170+ <Pattern>^Add an AssemblyVersion attribute to (.+?)\.$</Pattern>
171+ </Resolution>
172+ </Rule>
173+ <Rule CheckId="CA1017" Category="Microsoft.Design">
174+ <Name>アセンブリに ComVisible 属性を付加する</Name>
175+ <Resolution>
176+ <Content>アセンブリに ComVisible 属性を付加してください。</Content>
177+ <Pattern>^Because (.+?) exposes externally visible types, mark it with ComVisible\(false\) at the assembly level and then mark all types within the assembly that should be exposed to COM clients with ComVisible\(true\)\.$</Pattern>
178+ </Resolution>
179+ <Resolution>
180+ <Content>{0} の ComVisible 属性の引数を false に変更し、型レベルで COM への公開を制御することを検討してください。</Content>
181+ <Pattern>^Consider changing the ComVisible attribute on (.+?) to false, and opting in at the type level\.$</Pattern>
182+ </Resolution>
183+ </Rule>
184+ <Rule CheckId="CA1018" Category="Microsoft.Design">
185+ <Name>属性に AttributeUsage 属性を付加する</Name>
186+ <Resolution>
187+ <Content>{0} に AttributeUsage 属性を付加してください。</Content>
188+ <Pattern>^Specify AttributeUsage on (.+?)\.$</Pattern>
189+ </Resolution>
190+ <Resolution>
191+ <Content>{0} に AttributeUsage 属性を付加してください。AttributeUsage 属性を基底クラスから継承している場合でも、可読性向上のために AttributeUsage 属性は明示的に指定すべきです。</Content>
192+ <Pattern>^Even though attribute (.+?) inherits AttributeUsage from its base type, you should consider explicitly specifying AttributeUsage on the type to improve code readability and documentation\.$</Pattern>
193+ </Resolution>
194+ </Rule>
195+ <Rule CheckId="CA1019" Category="Microsoft.Design">
196+ <Name>属性のコンストラクタの引数に対応する読み取り専用プロパティを定義する</Name>
197+ <Resolution>
198+ <Content>属性 {1} にコンストラクタの {0} に対応する読み取り専用プロパティを追加してください。</Content>
199+ <Pattern>^Add a public read-only property accessor for positional argument (.+?) of Attribute (.+?)\.$</Pattern>
200+ </Resolution>
201+ <Resolution>
202+ <Content>{0} を読み取り専用に変更するかセットアクセサを外部から参照できないように変更してください。</Content>
203+ <Pattern>^Remove the property setter from (.+?) or reduce its accessibility because it corresponds to positional argument (.+?)\.$</Pattern>
204+ </Resolution>
205+ <Resolution>
206+ <Content>{0} がコンストラクタの引数 {1} に対応するプロパティなら、このプロパティを public に変更してください。</Content>
207+ <Pattern>^If (.+?) is the property accessor for positional argument (.+?), make it public\.$</Pattern>
208+ </Resolution>
209+ </Rule>
210+ <Rule CheckId="CA1020" Category="Microsoft.Design">
211+ <Name>ほとんど型を定義していない名前空間を作らない</Name>
212+ <Resolution>
213+ <Content>{0} で定義されている型を別の名前空間に移行することを検討してください。</Content>
214+ <Pattern>^Consider merging the types defined in '(.+?)' with another namespace\.$</Pattern>
215+ </Resolution>
216+ </Rule>
217+ <Rule CheckId="CA1021" Category="Microsoft.Design">
218+ <Name>out による参照渡しを避ける</Name>
219+ <Resolution>
220+ <Content>{0} を out で参照渡ししなくて済むよう設計変更を検討してください。</Content>
221+ <Pattern>^Consider a design that does not require that (.+?) be an out parameter\.$</Pattern>
222+ </Resolution>
223+ </Rule>
224+ <Rule CheckId="CA1023" Category="Microsoft.Design">
225+ <Name>多次元のインデクサを定義しない</Name>
226+ <Resolution>
227+ <Content>インデックスとして文字列か整数1つだけを受け取るようにインデクサ {0} を再設計してください。</Content>
228+ <Pattern>^Redesign indexer (.+?) to use a single string or integer value as its index\.$</Pattern>
229+ </Resolution>
230+ </Rule>
231+ <Rule CheckId="CA1024" Category="Microsoft.Design">
232+ <Name>プロパティ定義とメソッド定義を適切に使い分ける</Name>
233+ <Resolution>
234+ <Content>{0} をプロパティに変更することを検討してください。引数でデータを受け取らず、型が内部で持っている状態を返すような場合はプロパティとして定義するの適しています。</Content>
235+ <Pattern>^Change (.+?) to a property if appropriate\.$</Pattern>
236+ </Resolution>
237+ </Rule>
238+ <Rule CheckId="CA1025" Category="Microsoft.Design">
239+ <Name>同じ型の引数を繰り返し定義する代わりに params を使用する</Name>
240+ <Resolution>
241+ <Content>{0} で params を使用して、配列として引数を受け取れるように実装することを検討してください。</Content>
242+ <Pattern>^Consider implementing a version of (.+?) that accepts a parameter array argument\.$</Pattern>
243+ </Resolution>
244+ </Rule>
245+ <Rule CheckId="CA1026" Category="Microsoft.Design">
246+ <Name>デフォルト引数を使用しない</Name>
247+ <Resolution>
248+ <Content>デフォルト引数を使う代わりに {0} のオーバーロードメソッドを定義してください。</Content>
249+ <Pattern>^Replace method (.+?) with an overload that supplies all default arguments\.$</Pattern>
250+ </Resolution>
251+ </Rule>
252+ <Rule CheckId="CA1027" Category="Microsoft.Design">
253+ <Name>列挙型に Flags 属性を付加してください</Name>
254+ <Resolution>
255+ <Content>列挙型 {0} のメンバーはフラグを表しているようです。もしそうであれば、{0} に Flags 属性を付加してください。</Content>
256+ <Pattern>^The constituent members of (.+?) appear to represent flags that can be combined rather than discrete values\. If this is correct, mark the enumeration with FlagsAttribute\.$</Pattern>
257+ </Resolution>
258+ </Rule>
259+ <Rule CheckId="CA1028" Category="Microsoft.Design">
260+ <Name>列挙型の基になる型には Int32 を使用する</Name>
261+ <Resolution>
262+ <Content>可能であれば、{0} の基になる型を {1} から System.Int32 に変更してください。</Content>
263+ <Pattern>^If possible, make the underlying type of (.+?) System\.Int32 instead of (.+?)\.$</Pattern>
264+ </Resolution>
265+ <Resolution>
266+ <Content>可能であれば、{0} の基になる型を {1} から System.Int32 に変更してください。そうでなければ Byte や Int16、Int64 の使用を検討してください。</Content>
267+ <Pattern>^If possible, make the underlying type of (.+?) Int32 instead of (.+?)\. Otherwise consider Byte, Int16, or Int64\.$</Pattern>
268+ </Resolution>
269+ </Rule>
270+ <Rule CheckId="CA1030" Category="Microsoft.Design">
271+ <Name>イベントとして実装するのが適しているメソッドはイベントに変更する</Name>
272+ <Resolution>
273+ <Content>{0} をイベントとして実装することを検討してください。名前から推測すると、{0} はイベントで実現できることをわざわざメソッドで実装しようとしているように思えます。</Content>
274+ <Pattern>^Consider making (.+?) an event\.$</Pattern>
275+ </Resolution>
276+ </Rule>
277+ <Rule CheckId="CA1031" Category="Microsoft.Design">
278+ <Name>汎用的な例外をキャッチしない</Name>
279+ <Resolution>
280+ <Content>{1} ではなくより限定的な例外をキャッチするよう {0} を修正してください。{1} をキャッチするなら cache 句の中でキャッチした例外を再スローしてください。</Content>
281+ <Pattern>^Modify (.+?) to catch a more specific exception than (.+?) or rethrow the exception\.$</Pattern>
282+ </Resolution>
283+ </Rule>
284+ <Rule CheckId="CA1032" Category="Microsoft.Design">
285+ <Name>例外には標準的なコンストラクタを実装する</Name>
286+ <Resolution>
287+ <Content>{0} にコンストラクタ {1} を追加してください。</Content>
288+ <Pattern>^Add the following constructor to (.+?): (.+?)\.$</Pattern>
289+ </Resolution>
290+ <Resolution>
291+ <Content>{0} のアクセシビリティを {1} に変更してください。</Content>
292+ <Pattern>^Change the accessibility of (.+?) to (.+?)\.$</Pattern>
293+ </Resolution>
294+ </Rule>
295+ <Rule CheckId="CA1033" Category="Microsoft.Design">
296+ <Name>基底クラスのインターフェースメソッドを派生クラスから呼び出せるようにする</Name>
297+ <Resolution>
298+ <Content>{0} をシールするか、明示的な実装を止めるか、{1} と同じ機能を提供する派生クラスから呼び出し可能なメソッドを新たに作成してください。</Content>
299+ <Pattern>^Make (.+?) sealed \(a breaking change if this class has previously shipped\), implement the method non-explicitly, or implement a new method that exposes the functionality of (.+?) and is visible to derived classes\.$</Pattern>
300+ </Resolution>
301+ </Rule>
302+ <Rule CheckId="CA1034" Category="Microsoft.Design">
303+ <Name>ネストした型は外部から参照不可能にする</Name>
304+ <Resolution>
305+ <Content>{0} をネストさせないか、外部から参照できないようにアクセシビリティを変更してください。</Content>
306+ <Pattern>^Do not nest type (.+?)\. Alternatively, change its accessibility so that it is not externally visible\.$</Pattern>
307+ </Resolution>
308+ <Resolution>
309+ <Content>{0} をネストさせないか、外部から参照できないようにアクセシビリティを変更してください。この型が Visual Basic の Module で定義されているのなら、型を Module 外で定義することを検討してください。Module 内で定義された型は、他の .NET 言語からはネストされた型のように見えます。</Content>
310+ <Pattern>^Do not nest type (.+?)\. Alternatively, change its accessibility so that it is not externally visible\. If this type is defined in a Visual Basic Module, it will be considered a nested type to other \.NET languages\. In that case, consider moving the type outside of the Module\.$</Pattern>
311+ </Resolution>
312+ </Rule>
313+ <Rule CheckId="CA1035" Category="Microsoft.Design">
314+ <Name>ICollection を実装する型には厳密に型指定された CopyTo メソッドを作成する</Name>
315+ <Resolution>
316+ <Content>{0} に厳密に型指定された CopyTo メソッドを実装してください。</Content>
317+ <Pattern>^(.+?) should provide a strongly typed implementation of ICollection\.CopyTo\.$</Pattern>
318+ </Resolution>
319+ </Rule>
320+ <Rule CheckId="CA1036" Category="Microsoft.Design">
321+ <Name>IComparable を実装している型では等値比較用のメソッドをオーラーライドする</Name>
322+ <Resolution>
323+ <Content>{0} で Equals をオーバーライドしてください。</Content>
324+ <Pattern>^(.+?) should override Equals since it implements IComparable\.$</Pattern>
325+ </Resolution>
326+ <Resolution>
327+ <Content>{0} で {1} 演算子のオーバーロードメソッドを実装してください。</Content>
328+ <Pattern>^(.+?) should define operator '(.+?)' since it implements IComparable\.$</Pattern>
329+ </Resolution>
330+ </Rule>
331+ <Rule CheckId="CA1038" Category="Microsoft.Design">
332+ <Name>IEnumerator を実装する型では厳密に型指定された Current を定義する</Name>
333+ <Resolution>
334+ <Content>{0} に厳密に型指定された Current プロパティを定義してください。</Content>
335+ <Pattern>^(.+?) should provide a strongly typed implementation of IEnumerator\.Current\.$</Pattern>
336+ </Resolution>
337+ </Rule>
338+ <Rule CheckId="CA1039" Category="Microsoft.Design">
339+ <Name>IList を実装する型では厳密に型指定されたメンバーを定義する</Name>
340+ <Resolution>
341+ <Content>{0} に厳密に型指定された {1} を定義してください。</Content>
342+ <Pattern>^(.+?) should provide a strongly typed implementation of IList\.(.+?)\.$</Pattern>
343+ </Resolution>
344+ </Rule>
345+ <Rule CheckId="CA1040" Category="Microsoft.Design">
346+ <Name>空のインターフェースを作らない</Name>
347+ <Resolution>
348+ <Content>{0} の代わりにカスタム属性を定義してください。</Content>
349+ <Pattern>^Define a custom attribute to replace (.+?)\.$</Pattern>
350+ </Resolution>
351+ </Rule>
352+ <Rule CheckId="CA1041" Category="Microsoft.Design">
353+ <Name>Obsolete 属性にメッセージを指定する</Name>
354+ <Resolution>
355+ <Content>{0} に付加されている Obsolete 属性にメッセージを指定してください。</Content>
356+ <Pattern>^Provide a message for the ObsoleteAttribute that marks (.+?)\.$</Pattern>
357+ </Resolution>
358+ </Rule>
359+ <Rule CheckId="CA1043" Category="Microsoft.Design">
360+ <Name>インデクサの引数は整数型か文字列型にする</Name>
361+ <Resolution>
362+ <Content>インデクサ {0} の引数の型を整数型か文字列型にしてください。</Content>
363+ <Pattern>^Use an integral value or string as the parameter to indexer (.+?)\.$</Pattern>
364+ </Resolution>
365+ </Rule>
366+ <Rule CheckId="CA1044" Category="Microsoft.Design">
367+ <Name>書き込み専用プロパティを定義しない</Name>
368+ <Resolution>
369+ <Content>プロパティ {0} に get アクセサを追加するか、{0} をメソッドに変更してください。</Content>
370+ <Pattern>^Because property (.+?) is write-only, either add a property getter with an accessibility that is greater than or equal to its setter or convert this property into a method\.$</Pattern>
371+ </Resolution>
372+ <Resolution>
373+ <Content>プロパティ {0} の get アクセサのアクセシビリティを set アクセサ以上にしてください。</Content>
374+ <Pattern>^Because the property getter for (.+?) is less visible than its setter, either increase the accessibility of its getter or decrease the accessibility of its setter\.$</Pattern>
375+ </Resolution>
376+ </Rule>
377+ <Rule CheckId="CA1045" Category="Microsoft.Design">
378+ <Name>参照渡しを行わない</Name>
379+ <Resolution>
380+ <Content>{0} を ref で参照渡ししなくて済むよう設計変更を検討してください。</Content>
381+ <Pattern>^Consider a design that does not require that (.+?) be a reference parameter\.$</Pattern>
382+ </Resolution>
383+ </Rule>
384+ <Rule CheckId="CA1046" Category="Microsoft.Design">
385+ <Name>参照型で == 演算子をオーバーロードしない</Name>
386+ <Resolution>
387+ <Content>{0} の == 演算子のオーバーロードメソッドを削除してください。</Content>
388+ <Pattern>^(.+?) should not overload the equality operator\.$</Pattern>
389+ </Resolution>
390+ </Rule>
391+ <Rule CheckId="CA1047" Category="Microsoft.Design">
392+ <Name>継承不可能な型には protected のメンバーを作らない</Name>
393+ <Resolution>
394+ <Content>この型のアクセシビリティを private、internal (Visual Basic の場合は Friend)、もしくは public にしてください。</Content>
395+ <Pattern>^Make type (.+?) private, public, or internal \(Friend in Visual Basic\)\.$</Pattern>
396+ </Resolution>
397+ <Resolution>
398+ <Content>{0} のアクセシビリティを private、internal (Visual Basic の場合は Friend)、もしくは public にしてください。</Content>
399+ <Pattern>^Make member (.+?) private, public, or internal \(Friend in Visual Basic\)\.$</Pattern>
400+ </Resolution>
401+ </Rule>
402+ <Rule CheckId="CA1048" Category="Microsoft.Design">
403+ <Name>継承不可能な型には継承可能なメンバーを作らない</Name>
404+ <Resolution>
405+ <Content>{0} から継承可能を表すキーワードを削除してください。もしくは、型を継承可能にしてください。</Content>
406+ <Pattern>^'(.+?)' is a virtual member declared in a sealed type\. Mark the member non-virtual or, if the type should be extensible, unseal it\.$</Pattern>
407+ </Resolution>
408+ </Rule>
409+ <Rule CheckId="CA1049" Category="Microsoft.Design">
410+ <Name>ネイティブリソースを保持する型では IDisposable を実装する</Name>
411+ <Resolution>
412+ <Content>{0} で IDisposable を実装してください。</Content>
413+ <Pattern>^Implement IDisposable on (.+?)\.$</Pattern>
414+ </Resolution>
415+ </Rule>
416+ <Rule CheckId="CA1050" Category="Microsoft.Design">
417+ <Name>型は名前空間の中で定義する</Name>
418+ <Resolution>
419+ <Content>{0} を名前空間の中で定義してください。</Content>
420+ <Pattern>^(.+?) should be declared inside a namespace\.$</Pattern>
421+ </Resolution>
422+ </Rule>
423+ <Rule CheckId="CA1051" Category="Microsoft.Design">
424+ <Name>外部から参照可能なフィールを作らない</Name>
425+ <Resolution>
426+ <Content>フィールド {0} を宣言されている型以外から参照できないようにアクセシビリティを private に変更し、代わりにフィールドにアクセスするためのプロパティを定義してください。</Content>
427+ <Pattern>^Because field (.+?) is visible outside of its declaring type, change its accessibility to private and add a property, with the same accessibility as the field has currently, to provide access to it\.$</Pattern>
428+ </Resolution>
429+ </Rule>
430+ <Rule CheckId="CA1052" Category="Microsoft.Design">
431+ <Name>static メンバーのみしか持たない型は継承不可能とする</Name>
432+ <Resolution>
433+ <Content>{0} を継承不可能にしてください。</Content>
434+ <Pattern>^Mark (.+?) as sealed\.$</Pattern>
435+ </Resolution>
436+ </Rule>
437+ <Rule CheckId="CA1053" Category="Microsoft.Design">
438+ <Name>static メンバーのみしか持たない型には public コンストラクタを作らない</Name>
439+ <Resolution>
440+ <Content>{0} から public コンストラクタを削除してください。</Content>
441+ <Pattern>^Remove the public constructors from (.+?)\.$</Pattern>
442+ </Resolution>
443+ </Rule>
444+ <Rule CheckId="CA1054" Category="Microsoft.Design">
445+ <Name>URI を文字列として受け取る引数を作らない</Name>
446+ <Resolution>
447+ <Content>メソッド {1} の引数 {0} の型を文字列から System.Uri に変更してください。もしくは System.Uri を受け取るオーバーロードメソッドを定義してください。</Content>
448+ <Pattern>^Change the type of parameter (.+?) of method (.+?) from string to System\.Uri, or provide an overload of (.+?), that allows (.+?) to be passed as a System\.Uri object\.$</Pattern>
449+ </Resolution>
450+ </Rule>
451+ <Rule CheckId="CA1055" Category="Microsoft.Design">
452+ <Name>戻り値として URI を返す場合に文字列として返さない</Name>
453+ <Resolution>
454+ <Content>{0} メソッドの戻り値の型を文字列から System.Uri に変更してください。</Content>
455+ <Pattern>^Change the return type of (.+?) from string to System\.Uri\.$</Pattern>
456+ </Resolution>
457+ </Rule>
458+ <Rule CheckId="CA1056" Category="Microsoft.Design">
459+ <Name>URI を表すプロパティを文字列型にしない</Name>
460+ <Resolution>
461+ <Content>{0} プロパティの型を文字列から System.Uri に変更してください。</Content>
462+ <Pattern>^Change the type of property (.+?) from string to System\.Uri\.$</Pattern>
463+ </Resolution>
464+ </Rule>
465+ <Rule CheckId="CA1057" Category="Microsoft.Design">
466+ <Name>URI の文字列表現を受け取るメソッドから System.Uri を受け取るオーバーロードメソッドを呼び出す</Name>
467+ <Resolution>
468+ <Content>引数 {1} で受け取った文字列から System.Uri インスタンスを生成し、{2} を呼び出すように {0} を修正してください。</Content>
469+ <Pattern>^Refactor (.+?) so that it builds a System\.Uri object from (.+?), and then calls (.+?)\.$</Pattern>
470+ </Resolution>
471+ </Rule>
472+ <Rule CheckId="CA1058" Category="Microsoft.Design">
473+ <Name>特定の型の派生型を作らない</Name>
474+ <Resolution>
475+ <Content>{0} の基底クラスを {1} 以外に変更してください。{1} を継承するのではなくクラスで {1} インスタンスを保持するように実装することを推奨します。</Content>
476+ <Pattern>^Change the base type of (.+?) so that it no longer extends (.+?)\. The preferred design is to decouple the underlying XmlDocument representation from the type's interface by using containment instead of inheritance\.$</Pattern>
477+ </Resolution>
478+ <Resolution>
479+ <Content>{0} の基底クラスを {1} 以外に変更してください。</Content>
480+ <Pattern>^Change the base type of (.+?) so that it no longer extends (.+?)\. This base exception type does not provide any additional value for framework classes\. Extend 'System\.Exception' or an existing unsealed exception type instead\. Do not create a new exception base type unless there is specific value in enabling the creation of a catch handler for an entire class of exceptions\.$</Pattern>
481+ </Resolution>
482+ <Resolution>
483+ <Content>{0} の基底クラスを {1} から同等の機能を持つジェネリッククラス 'System.Collections.ObjectModel.Collection' に変更してください。</Content>
484+ <Pattern>^Change the base type of (.+?) from (.+?) to its generic equivalent 'System\.Collections\.ObjectModel\.Collection'\.$</Pattern>
485+ </Resolution>
486+ <Resolution>
487+ <Content>{0} の基底クラスを {1} から同等の機能を持つジェネリッククラス 'System.Collections.ObjectModel.KeyedCollection' に変更してください。</Content>
488+ <Pattern>^Change the base type of (.+?) from (.+?) to its generic equivalent 'System\.Collections\.ObjectModel\.KeyedCollection'\.$</Pattern>
489+ </Resolution>
490+ <Resolution>
491+ <Content>{0} の基底クラスを {1} から同等の機能を持つジェネリッククラス 'System.Collections.Generic.Queue' に変更してください。</Content>
492+ <Pattern>^Change the base type of (.+?) from (.+?) to its generic equivalent 'System\.Collections\.Generic\.Queue'\.$</Pattern>
493+ </Resolution>
494+ <Resolution>
495+ <Content>{0} の基底クラスを {1} から同等の機能を持つジェネリッククラス 'System.Collections.ObjectModel.ReadOnlyCollection' に変更してください。</Content>
496+ <Pattern>^Change the base type of (.+?) from (.+?) to its generic equivalent 'System\.Collections\.ObjectModel\.ReadOnlyCollection'\.$</Pattern>
497+ </Resolution>
498+ <Resolution>
499+ <Content>{0} の基底クラスを {1} から同等の機能を持つジェネリッククラス 'System.Collections.Generic.SortedList' に変更してください。</Content>
500+ <Pattern>^Change the base type of (.+?) from (.+?) to its generic equivalent 'System\.Collections\.Generic\.SortedList'\.$</Pattern>
501+ </Resolution>
502+ <Resolution>
503+ <Content>{0} の基底クラスを {1} から同等の機能を持つジェネリッククラス 'System.Collections.Generic.Stack' に変更してください。</Content>
504+ <Pattern>^Change the base type of (.+?) from (.+?) to its generic equivalent 'System\.Collections\.Generic\.Stack'\.$</Pattern>
505+ </Resolution>
506+ </Rule>
507+ <Rule CheckId="CA1059" Category="Microsoft.Design">
508+ <Name>特定の具象型を外部に公開するメンバーを作らない</Name>
509+ <Resolution>
510+ <Content>{1} を外部に公開しないように {0} を修正してください。XML データソースを表すために IXPathNavigable を使うことを推奨します。</Content>
511+ <Pattern>^Modify member (.+?) so that it no longer exposes the concrete type (.+?)\. Use IXPathNavigable to represent XML data sources\.$</Pattern>
512+ </Resolution>
513+ </Rule>
514+ <Rule CheckId="CA1060" Category="Microsoft.Design">
515+ <Name>P/Invoke を行うメソッドは NaviteMethods クラスで定義する</Name>
516+ <Resolution>
517+ <Content>{0} は NativeMethods、SafeNativeMethods、UnsafeNativeMethods と名付けられたクラスで定義してください。</Content>
518+ <Pattern>^Because it is a P/Invoke method, (.+?) should be defined in a class named NativeMethods, SafeNativeMethods, or UnsafeNativeMethods\.$</Pattern>
519+ </Resolution>
520+ </Rule>
521+ <Rule CheckId="CA1061" Category="Microsoft.Design">
522+ <Name>基底クラスのメソッドを隠蔽しない</Name>
523+ <Resolution>
524+ <Content>{0} を修正するか削除してください。基底クラスにより限定的な引数を持つメソッド {1} が定義されています。</Content>
525+ <Pattern>^Change or remove (.+?) because it hides a more specific base class method: (.+?)\.$</Pattern>
526+ </Resolution>
527+ </Rule>
528+ <Rule CheckId="CA1063" Category="Microsoft.Design">
529+ <Name>IDisposable インターフェースを適切に実装する</Name>
530+ <Resolution>
531+ <Content>{0} には IDisposable を実装させず、代わりに基底クラスの Dispose をオーラーライドしてください。</Content>
532+ <Pattern>^Remove IDisposable from the list of interfaces implemented by (.+?) and override the base class Dispose implementation instead\.$</Pattern>
533+ </Resolution>
534+ <Resolution>
535+ <Content>{0} からファイナライザを削除し、代わりに Dispose(bool disposing) をオーバーライドしてください。現在の終了処理のロジックは 'disposing' が false の場合に実行されるようにしてください。</Content>
536+ <Pattern>^Remove the finalizer from type (.+?), override Dispose\(bool disposing\), and put the finalization logic in the code path where 'disposing' is false\.$</Pattern>
537+ </Resolution>
538+ <Resolution>
539+ <Content>{0} を削除し、代わりに Dispose(bool disposing) をオーバーライドしてください。現在の破棄処理のロジックは 'disposing' が true の場合に実行されるようにしてください。</Content>
540+ <Pattern>^Remove (.+?), override Dispose\(bool disposing\), and put the dispose logic in the code path where 'disposing' is true\.$</Pattern>
541+ </Resolution>
542+ <Resolution>
543+ <Content>{0} のアクセシビリティを public にし、かつオーバーライドできないようにしてください。</Content>
544+ <Pattern>^Ensure that (.+?) is declared as public and sealed\.$</Pattern>
545+ </Resolution>
546+ <Resolution>
547+ <Content>{0} の名前を 'Dispose' に変更してください。更に、アクセシビリティを public にし、かつオーバーライドできないようにしてください。</Content>
548+ <Pattern>^Rename (.+?) to 'Dispose' and ensure that it is declared as public and sealed\.$</Pattern>
549+ </Resolution>
550+ <Resolution>
551+ <Content>{0} のアクセシビリティを protected にし、かつオーバーライド可能にしてください。</Content>
552+ <Pattern>^Ensure that (.+?) is declared as protected, virtual, and unsealed\.$</Pattern>
553+ </Resolution>
554+ <Resolution>
555+ <Content>Dispose(true) を呼び出し、その後現在のインスタンス (C# の 'this' や Visual Basic の 'Me') を対象に GC.SuppressFinalize を呼び出してすぐに return するように {0} を変更してください。</Content>
556+ <Pattern>^Modify (.+?) so that it calls Dispose\(true\), then calls GC\.SuppressFinalize on the current object instance \('this' or 'Me' in Visual Basic\), and then returns\.$</Pattern>
557+ </Resolution>
558+ <Resolution>
559+ <Content>Dispose(false) を呼び出してすぐに return するように {0} を変更してください。</Content>
560+ <Pattern>^Modify (.+?) so that it calls Dispose\(false\) and then returns\.$</Pattern>
561+ </Resolution>
562+ <Resolution>
563+ <Content>{0} でオーバーライド可能な Dispose(bool) メソッドを実装するか、もしくは {0} を継承不可能にしてください。Dispose(false) が呼ばれた場合はネイティブリソースのみを、Dispose(true) が呼ばれた場合はマネージリソース、ネイティブリソースの両方をクリーンアップするようにすべきです。</Content>
564+ <Pattern>^Provide an overridable implementation of Dispose\(bool\) on (.+?) or mark the type as sealed\. A call to Dispose\(false\) should only clean up native resources\. A call to Dispose\(true\) should clean up both managed and native resources\.$</Pattern>
565+ </Resolution>
566+ </Rule>
567+ <Rule CheckId="CA1064" Category="Microsoft.Design">
568+ <Name>例外は public にする</Name>
569+ <Resolution>
570+ <Content>例外クラス {0} を public に変更してください。</Content>
571+ <Pattern>^Make exception class (.+?) public\.$</Pattern>
572+ </Resolution>
573+ </Rule>
574+ <Rule CheckId="CA1065" Category="Microsoft.Design">
575+ <Name>例外の発生が想定されないところでは例外をスローしない</Name>
576+ <Resolution>
577+ <Content>{0} はプロパティの get アクセサで発生すべきではない {1} 型の例外をスローします。例外を発生させる必要がないようにこのプロパティを修正してください。どうしても例外を発生させたい場合は、System.InvalidOperationException のような別の例外をスローするか、このプロパティをメソッドに変更してください。</Content>
578+ <Pattern>^(.+?) creates an exception of type (.+?), an exception type that should not be raised in a property\. If this exception instance might be raised, use a different exception type, convert this property into a method, or change this property's logic so that it no longer raises an exception\.$</Pattern>
579+ </Resolution>
580+ <Resolution>
581+ <Content>{0} は発生すべきではない {1} 型の例外をスローします。例外を発生させる必要がないようにこのメソッドを修正してください。どうしても例外を発生させたい場合は、別の例外をスローしてください。</Content>
582+ <Pattern>^(.+?) creates an exception of type (.+?), an exception type that should not be raised in this type of method\. If this exception instance might be raised, either use a different exception type or change this method's logic so that it no longer raises an exception\.$</Pattern>
583+ </Resolution>
584+ <Resolution>
585+ <Content>{0} は発生すべきではない {1} 型の例外をスローします。例外を発生させる必要がないようにこのメソッドを修正してください。</Content>
586+ <Pattern>^(.+?) creates an exception of type (.+?)\. Exceptions should not be raised in this type of method\. If this exception instance might be raised, change this method's logic so it no longer raises an exception\.$</Pattern>
587+ </Resolution>
588+ </Rule>
589+
590+ <Rule CheckId="CA1300" Category="Microsoft.Globalization">
591+ <Name>メッセージボックス表示時には MessageBoxOptions 列挙値を指定する</Name>
592+ <Resolution>
593+ <Content>MessageBox.Show メソッドに引数として MessageBoxOptions 列挙値を渡すように {0} の呼び出しコードを修正してください。</Content>
594+ <Pattern>^Change (.+?) to call the MessageBox\.Show overload that specifies MessageBoxOptions, and make sure to set MessageBoxOptions\.RightAlign and MessageBoxOptions\.RtlReading if RightToLeft is set to RightToLeft\.Yes on the parent control\.$</Pattern>
595+ </Resolution>
596+ </Rule>
597+ <Rule CheckId="CA1301" Category="Microsoft.Globalization">
598+ <Name>アクセラレータを重複させない</Name>
599+ <Resolution>
600+ <Content>コントロール {0} にアクセラレータ &amp;{1} が設定されているコントロールが複数配置されています。アクセラレータが重複しているコントロール : {2}</Content>
601+ <Pattern>^Define unique accelerators for the following controls in (.+?) that all currently use &amp;(.+?) as an accelerator: (.+?)\.$</Pattern>
602+ </Resolution>
603+ </Rule>
604+ <Rule CheckId="CA1302" Category="Microsoft.Globalization">
605+ <Name>特殊なシステムフォルダパスを表す文字列リテラルを使用しない</Name>
606+ <Resolution>
607+ <Content>メソッド {1} で使用している文字列リテラル '{0}' の代わりに Environment.GetFolderPath を使用してください。</Content>
608+ <Pattern>^If the literal '(.+?)' used in method (.+?) refers to a special system location, replace it with a call to Environment\.GetFolderPath\.$</Pattern>
609+ </Resolution>
610+ </Rule>
611+ <Rule CheckId="CA1304" Category="Microsoft.Globalization">
612+ <Name>CultureInfo を受け取るオーバーロードメソッドを使用する</Name>
613+ <Resolution>
614+ <Content>{1} で呼び出している {0} を {2} に変更してください。{3} の結果をユーザー向けに表示するのであれば CultureInfo 型の引数には CultureInfo.CurrentCulture を、そうでなければ CultureInfo.InvariantCulture を指定するのが適しています。</Content>
615+ <Pattern>^Because the behavior of (.+?) could vary based on the current user's locale settings, replace this call in (.+?) with a call to (.+?)\. If the result of (.+?) will be displayed to the user, specify 'CultureInfo\.CurrentCulture' as the 'CultureInfo' parameter\. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo\.InvariantCulture'\.$</Pattern>
616+ </Resolution>
617+ </Rule>
618+ <Rule CheckId="CA1305" Category="Microsoft.Globalization">
619+ <Name>IFormatProvider を受け取るオーバーロードメソッドを使用する</Name>
620+ <Resolution>
621+ <Content>{1} で呼び出している {0} を {2} に変更してください。{3} の結果をユーザー向けに表示するのであれば CultureInfo 型の引数には CultureInfo.CurrentCulture を、そうでなければ CultureInfo.InvariantCulture を指定するのが適しています。</Content>
622+ <Pattern>^Because the behavior of (.+?) could vary based on the current user's locale settings, replace this call in (.+?) with a call to (.+?)\. If the result of (.+?) will be displayed to the user, specify 'CultureInfo\.CurrentCulture' as the 'IFormatProvider' parameter\. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify 'CultureInfo\.InvariantCulture'\.$</Pattern>
623+ </Resolution>
624+ </Rule>
625+ <Rule CheckId="CA1306" Category="Microsoft.Globalization">
626+ <Name>DataSet および DataTable にはロケールを明示的に指定する</Name>
627+ <Resolution>
628+ <Content>{1} で {0} のインスタンスを作成する際、Locale プロパティを明示的に指定してください。</Content>
629+ <Pattern>^Be sure to set the (.+?) Locale property wherever (.+?) creates an instance of that type\.$</Pattern>
630+ </Resolution>
631+ </Rule>
632+ <Rule CheckId="CA2101" Category="Microsoft.Globalization">
633+ <Name>プラットフォーム呼び出しメソッドの文字列引数を明示的にマーシャリングする</Name>
634+ <Resolution>
635+ <Content>DllImport 属性の CharSet プロパティに CharSet.Unicode を指定して文字列型の引数 {0} を Unicode と明示してください。もしくは、引数 {0} に MarshalAs 属性を付加し、UnmanagedType.LPWStr を設定してください。文字列として ANSI を使う必要がある場合は、DllImport 属性に BestFitMapping = false と ThrowOnUnmappableChar = true を指定してください。</Content>
636+ <Pattern>^To reduce security risk, marshal parameter (.+?) as Unicode, by setting DllImport\.CharSet to CharSet\.Unicode, or by explicitly marshaling the parameter as UnmanagedType\.LPWStr\. If you need to marshal this string as ANSI or system-dependent, set BestFitMapping=false; for added security, also set ThrowOnUnmappableChar=true\.$</Pattern>
637+ </Resolution>
638+ <Resolution>
639+ <Content>{1} の StructLayout 属性の CharSet プロパティに CharSet.Unicode を指定してフィールド {0} を Unicode と明示してください。もしくは、フィールド {0} に MarshalAs 属性を付加し、UnmanagedType.LPWStr を設定してください。文字列として ANSI を使う必要がある場合は、BestFitMapping 属性を付加してベストフィットマッピングを無効にし、さらに ThrowOnUnmappableChar = true を指定してください。</Content>
640+ <Pattern>^To reduce security risk, marshal field (.+?) as Unicode, by setting StructLayout\.CharSet on (.+?) to CharSet\.Unicode, or by explicitly marshaling the field as UnmanagedType\.LPWStr\. If you need to marshal this string as ANSI or system-dependent, use the BestFitMapping attribute to turn best-fit mapping off, and for added security, ensure ThrowOnUnmappableChar is on\.$</Pattern>
641+ </Resolution>
642+ <Resolution>
643+ <Content>DllImport 属性の CharSet プロパティに CharSet.Unicode を指定して文字列型の引数 {0} を Unicode と明示してください。もしくは、引数 {0} に MarshalAs 属性を付加し、UnmanagedType.LPWStr を設定してください。文字列として ANSI を使う必要がある場合は、DllImport 属性に BestFitMapping = false と ThrowOnUnmappableChar = true を指定してください。</Content>
644+ <Pattern>^To reduce security risk, marshal parameter (.+?) as Unicode, by setting DllImport\.CharSet to CharSet\.Unicode, or by explicitly marshaling the parameter as UnmanagedType\.LPWStr\. If you need to marshal this string as ANSI or system-dependent, specify MarshalAs explicitly, and set BestFitMapping=false; for added security, also set ThrowOnUnmappableChar=true\.$</Pattern>
645+ </Resolution>
646+ <Resolution>
647+ <Content>{1} の StructLayout 属性の CharSet プロパティに CharSet.Unicode を指定してフィールド {0} を Unicode と明示してください。もしくは、フィールド {0} に MarshalAs 属性を付加し、UnmanagedType.LPWStr を設定してください。文字列として ANSI を使う必要がある場合は、BestFitMapping 属性を付加してベストフィットマッピングを無効にし、さらに ThrowOnUnmappableChar = true を指定してください。</Content>
648+ <Pattern>^To reduce security risk, marshal field (.+?) as Unicode, by setting StructLayout\.CharSet on (.+?) to CharSet\.Unicode, or by explicitly marshaling the field as UnmanagedType\.LPWStr\. If you need to marshal this string as ANSI or system-dependent, specify MarshalAs explicitly, use the BestFitMapping attribute to turn best-fit mapping off, and for added security, to turn ThrowOnUnmappableChar on\.$</Pattern>
649+ </Resolution>
650+ </Rule>
651+ <Rule CheckId="CA1307" Category="Microsoft.Globalization">
652+ <Name>StringComparison を受け取るオーバーロードメソッドを使用する</Name>
653+ <Resolution>
654+ <Content>{1} の代わりに {2} を呼び出すように {0} を変更してください。</Content>
655+ <Pattern>^(.+?) makes a call to (.+?) that does not explicitly provide a StringComparison\. This should be replaced with a call to (.+?)\.$</Pattern>
656+ </Resolution>
657+ </Rule>
658+ <Rule CheckId="CA1308" Category="Microsoft.Globalization">
659+ <Name>文字列を小文字に正規化しない</Name>
660+ <Resolution>
661+ <Content>{1} の代わりに String.ToUpperInvariant() を呼び出すように {0} を変更してください。</Content>
662+ <Pattern>^In method (.+?), replace the call to (.+?) with String\.ToUpperInvariant\(\)\.$</Pattern>
663+ </Resolution>
664+ <Resolution>
665+ <Content>String.ToLower(CultureInfo.InvariantCulture) の代わりに String.ToUpper(CultureInfo.InvariantCulture) を呼び出すように {0} を変更してください。</Content>
666+ <Pattern>^In method (.+?), replace the call to String\.ToLower\(CultureInfo\.InvariantCulture\) with String\.ToUpper\(CultureInfo\.InvariantCulture\)\.$</Pattern>
667+ </Resolution>
668+ </Rule>
669+ <Rule CheckId="CA1309" Category="Microsoft.Globalization">
670+ <Name>文字列比較規則を指定する場合は序数並べ替え規則を指定する</Name>
671+ <Resolution>
672+ <Content>{2} の引数に {1} の代わりに StringComparison.Ordinal、もしくは StringComparison.OrdinalIgnoreCase を渡すように {0} を修正することを検討してください。</Content>
673+ <Pattern>^(.+?) passes (.+?) as an argument to (.+?)\. Replace this usage with StringComparison\.Ordinal or StringComparison\.OrdinalIgnoreCase if appropriate\.$</Pattern>
674+ </Resolution>
675+ <Resolution>
676+ <Content>{2} の引数に {1} の代わりに StringComparer.Ordinal、もしくは StringComparer.OrdinalIgnoreCase を渡すように {0} を修正することを検討してください。</Content>
677+ <Pattern>^(.+?) passes (.+?) as an argument to (.+?)\. Replace this usage with StringComparer\.Ordinal or StringComparer\.OrdinalIgnoreCase if appropriate\.$</Pattern>
678+ </Resolution>
679+ </Rule>
680+
681+ <Rule CheckId="CA1400" Category="Microsoft.Interoperability">
682+ <Name>存在しない関数をターゲットとするプラットフォーム呼び出しメソッドを作成しない</Name>
683+ <Resolution>
684+ <Content>指定されたライブラリ {1} の関数を呼び出せるように、{0} の名前とシグネチャを適切に修正してください。</Content>
685+ <Pattern>^Correct the declaration of (.+?) so that it correctly points to an existing entry point in (.+?)\. The unmanaged entry point name currently linked to is (.+?)\.$</Pattern>
686+ </Resolution>
687+ </Rule>
688+ <Rule CheckId="CA1401" Category="Microsoft.Interoperability">
689+ <Name>プラットフォーム呼び出しメソッドは外部から参照不可能とする</Name>
690+ <Resolution>
691+ <Content>アセンブリ外から呼び出しできないように、プラットフォーム呼び出しメソッド {0} のアクセシビリティを変更してください。</Content>
692+ <Pattern>^Change the accessibility of P/Invoke (.+?) so that it is no longer visible from outside its assembly\.$</Pattern>
693+ </Resolution>
694+ </Rule>
695+ <Rule CheckId="CA1402" Category="Microsoft.Interoperability">
696+ <Name>COM からの参照が可能なインターフェースにはオーバーロードメソッドを作らない</Name>
697+ <Resolution>
698+ <Content>COM から参照が可能なインターフェース {0} ではメソッドをオーバーロードせず、各オーバーロードメソッドに一意な名前を付けてください。</Content>
699+ <Pattern>^ComVisible\(true\) interface (.+?) defines overloaded methods\. Give each method a unique name or make the type ComVisible\(false\)\.$</Pattern>
700+ </Resolution>
701+ </Rule>
702+ <Rule CheckId="CA1403" Category="Microsoft.Interoperability">
703+ <Name>COM からの参照が可能な型のフィールドレイアウトを Auto にしない</Name>
704+ <Resolution>
705+ <Content>{0} 型のフィールドレイアウトを Explicit もしくは Sequential に変更してください。</Content>
706+ <Pattern>^Type (.+?) is both ComVisible\(true\) and set to Auto layout\. Make this type ComVisible\(false\) or specify Explicit or Sequential layout\.$</Pattern>
707+ </Resolution>
708+ </Rule>
709+ <Rule CheckId="CA1404" Category="Microsoft.Interoperability">
710+ <Name>GetLastWin32Error メソッドは、プラットフォーム呼び出しの直後以外の場所では使用しない</Name>
711+ <Resolution>
712+ <Content>GetLastWin32Error をプラットフォーム呼び出しの直後に呼び出すように、メソッド {0} を修正してください。</Content>
713+ <Pattern>^Method (.+?) called GetLastWin32Error but the immediately preceding call to (.+?) is not a P/Invoke statement\. Move the call to GetLastWin32Error so that it immediately follows the relevant platform invoke call\.$</Pattern>
714+ </Resolution>
715+ </Rule>
716+ <Rule CheckId="CA1405" Category="Microsoft.Interoperability">
717+ <Name>COM から参照可能な型に COM から参照不可能な型を継承させない</Name>
718+ <Resolution>
719+ <Content>{1} を COM から参照可能にするか、{0} が継承する型を変更してください。</Content>
720+ <Pattern>^(.+?) is marked ComVisible\(true\) but has the following ComVisible\(false\) types in its object hierarchy: (.+?)$</Pattern>
721+ </Resolution>
722+ </Rule>
723+ <Rule CheckId="CA1406" Category="Microsoft.Interoperability">
724+ <Name>COM から参照可能な型に Int64 型の引数を受け取るメソッドを作らない</Name>
725+ <Resolution>
726+ <Content>{0} を Int64 型の引数を受け取らないように変更してください。</Content>
727+ <Pattern>^Member (.+?) has one or more parameters of type Int64 that cannot be used from Visual Basic 6 clients\.$</Pattern>
728+ </Resolution>
729+ </Rule>
730+ <Rule CheckId="CA1407" Category="Microsoft.Interoperability">
731+ <Name>COM から参照可能な型に static なメンバーを作らない</Name>
732+ <Resolution>
733+ <Content>{0} を削除し、同等の機能を持つインスタンスメンバーを実装してください。</Content>
734+ <Pattern>^Consider whether the absence of (.+?) adversely impacts functionality for COM clients\.$</Pattern>
735+ </Resolution>
736+ </Rule>
737+ <Rule CheckId="CA1408" Category="Microsoft.Interoperability">
738+ <Name>COM から参照可能な型に AutoDual が設定された ClassInterface 属性を付加しない</Name>
739+ <Resolution>
740+ <Content>{0} の ClassInterface 属性の引数を ClassInterfaceType.None に変更し、別途インターフェースを作成してください。</Content>
741+ <Pattern>^Type (.+?) uses ClassInterfaceAttribute\(ClassInterfaceType\.AutoDual\) which might not version properly\. Instead, define and implement the interface and mark the class using ClassInterfaceType\.None\.$</Pattern>
742+ </Resolution>
743+ </Rule>
744+ <Rule CheckId="CA1409" Category="Microsoft.Interoperability">
745+ <Name>COM から参照可能な型にはデフォルトコンストラクタを作成する</Name>
746+ <Resolution>
747+ <Content>{0} にデフォルトコンストラクタを作成してください。</Content>
748+ <Pattern>^Provide a public default constructor for (.+?) if it should be COM-creatable or mark the type as ComVisible\(false\)\.$</Pattern>
749+ </Resolution>
750+ </Rule>
751+ <Rule CheckId="CA1410" Category="Microsoft.Interoperability">
752+ <Name>COM 登録用メソッドと COM 登録解除用メソッドの両方を定義する</Name>
753+ <Resolution>
754+ <Content>{0} は COM 登録用メソッドに設定されていますが、対応する COM 登録解除用メソッドがありません。</Content>
755+ <Pattern>^(.+?) is marked with the ComRegisterFunction attribute, but a corresponding unregistration function cannot be located in the type\.$</Pattern>
756+ </Resolution>
757+ <Resolution>
758+ <Content>{0} は COM 登録解除用メソッドに設定されていますが、対応する COM 登録用メソッドがありません。</Content>
759+ <Pattern>^(.+?) is marked with the ComUnregisterFunction attribute, but a corresponding registration function cannot be located in the type\.$</Pattern>
760+ </Resolution>
761+ </Rule>
762+ <Rule CheckId="CA1411" Category="Microsoft.Interoperability">
763+ <Name>COM 登録、登録解除用メソッドは別アセンブリから参照不可能にする</Name>
764+ <Resolution>
765+ <Content>{0} のアクセシビリティを private に変更してください。</Content>
766+ <Pattern>^Change the accessibility of (.+?), a COM registration function, to private\.$</Pattern>
767+ </Resolution>
768+ </Rule>
769+ <Rule CheckId="CA1412" Category="Microsoft.Interoperability">
770+ <Name>COM ソースインターフェースは IDispatch として公開する</Name>
771+ <Resolution>
772+ <Content>インターフェース {0} に InterfaceType 属性を付加し、引数として ComInterfaceType.InterfaceIsIDispatch を指定してください。このインターフェースは {1} で定義されている型から COM ソースインターフェースに指定されています。</Content>
773+ <Pattern>^Mark interface (.+?) as InterfaceType\(ComInterfaceType\.InterfaceIsIDispatch\) because it is specified in the ComSourceInterfaces attribute applied to types defined in (.+?)\.$</Pattern>
774+ </Resolution>
775+ </Rule>
776+ <Rule CheckId="CA1413" Category="Microsoft.Interoperability">
777+ <Name>COM から参照可能な値型に非 public フィールドを作らない</Name>
778+ <Resolution>
779+ <Content>{0} で定義されているフィールド {1} を public に変更するか、フィールド {1} が保持しているデータを COM から参照できないようにすることを検討してください。</Content>
780+ <Pattern>^Type (.+?) has non-public field (.+?) that is exposed to COM clients\.$</Pattern>
781+ </Resolution>
782+ </Rule>
783+ <Rule CheckId="CA1414" Category="Microsoft.Interoperability">
784+ <Name>プラットフォーム呼び出しメソッドのシグネチャに含まれる Boolean 型には MarshalAs 属性を付加する</Name>
785+ <Resolution>
786+ <Content>プラットフォーム呼び出しメソッド {1} の引数 {0} に MarshalAs 属性を付加してください。対応するのが Win32 の 4 バイト 'BOOL' 型なら [MarshalAs(UnmanagedType.Bool)] を、C++ の 1 バイト 'bool' 型なら [MarshalAs(UnmanagedType.U1)] を付加するのが適切です。</Content>
787+ <Pattern>^Add the MarshalAsAttribute to parameter (.+?) of P/Invoke (.+?)\. If the corresponding unmanaged parameter is a 4-byte Win32 'BOOL', use \[MarshalAs\(UnmanagedType\.Bool\)\]\. For a 1-byte C\+\+ 'bool', use MarshalAs\(UnmanagedType\.U1\)\.$</Pattern>
788+ </Resolution>
789+ <Resolution>
790+ <Content>プラットフォーム呼び出しメソッド {0} の戻り値の型に MarshalAs 属性を付加してください。対応するのが Win32 の 4 バイト 'BOOL' 型なら [MarshalAs(UnmanagedType.Bool)] を、C++ の 1 バイト 'bool' 型なら [MarshalAs(UnmanagedType.U1)] を付加するのが適切です。</Content>
791+ <Pattern>^Add the MarshalAsAttribute to the return type of P/Invoke (.+?)\. If the corresponding unmanaged return type is a 4-byte Win32 'BOOL', use MarshalAs\(UnmanagedType\.Bool\)\. For a 1-byte C\+\+ 'bool', use MarshalAs\(UnmanagedType\.U1\)\.$</Pattern>
792+ </Resolution>
793+ </Rule>
794+ <Rule CheckId="CA1415" Category="Microsoft.Interoperability">
795+ <Name>P/Invokes 宣言には適切な型を使用する</Name>
796+ <Resolution>
797+ <Content>{0} の引数 {1} の型を System.Threading.NativeOverlapped に変更してください。</Content>
798+ <Pattern>^Change the declaration of (.+?) so that parameter (.+?) is a pointer to System\.Threading\.NativeOverlapped\.$</Pattern>
799+ </Resolution>
800+ </Rule>
801+
802+ <Rule CheckId="CA1600" Category="Microsoft.Mobility">
803+ <Name>プロセスの優先度を Idle にしない</Name>
804+ <Resolution>
805+ <Content>{0} メソッドを修正し、プロセスの優先度を Idle 以外にしてください。</Content>
806+ <Pattern>^Modify method (.+?) to set Process\.PriorityClass to something other than ProcessPriorityClass\.Idle\.$</Pattern>
807+ </Resolution>
808+ </Rule>
809+ <Rule CheckId="CA1601" Category="Microsoft.Mobility">
810+ <Name>タイマーのインターバルを電源管理に影響を与えるほど短くしない</Name>
811+ <Resolution>
812+ <Content>メソッド {1} での {0} の呼び出しを修正し、タイマーのインターバルが 1 秒以上になるようにしてください。</Content>
813+ <Pattern>^Modify the call to (.+?) in method (.+?) to set the timer interval to a value that's greater than or equal to one second\.$</Pattern>
814+ </Resolution>
815+ </Rule>
816+
817+ <Rule CheckId="CA1700" Category="Microsoft.Naming">
818+ <Name>列挙値の名前には 'Reserved' を含めない</Name>
819+ <Resolution>
820+ <Content>{0} が将来の拡張のために予約されていることを表しているのなら、これを削除してください。そうでなければ、より意味のとりやすい名前に変更してください。</Content>
821+ <Pattern>^If (.+?) is not used in the current implementation, remove it\. Otherwise give it a meaningful name\.$</Pattern>
822+ </Resolution>
823+ </Rule>
824+ <Rule CheckId="CA1701" Category="Microsoft.Naming">
825+ <Name>リソース文字列内の複合語を構成する各単語は 1 文字目の大文字/小文字を適切に使い分ける</Name>
826+ <Resolution>
827+ <Content>リソース {0} のキー '{1}' に対応する文字列 '{3}' に含まれる複合語 '{2}' を '{4}' に変更してください。</Content>
828+ <Pattern>^In resource (.+?), referenced by name '(.+?)', the compound word '(.+?)' in string value '(.+?)' exists as a discrete term\. If your usage is intended to be single word, case it as '(.+?)'\.$</Pattern>
829+ </Resolution>
830+ <Resolution>
831+ <Content>リソース {0} のキー '{1}' に対応する文字列 '{3}' に含まれる複合語 '{2}' が API の識別子を指しているのなら '{5}' に変更してください。そうでなければ複合語にせず、2 つの単語に分割してください。</Content>
832+ <Pattern>^In resource (.+?), referenced by name '(.+?)' the discrete term '(.+?)' in string value '(.+?)' should be expressed as a compound word\. If '(.+?)' refers to an API identifier, case it as '(.+?)', otherwise split it into two words separated by a space\.$</Pattern>
833+ </Resolution>
834+ <Resolution>
835+ <Content>XML リソース {0} の要素 '{1}' の文字列 '{3}' に含まれる複合語 '{2}' を '{4}' に変更してください。</Content>
836+ <Pattern>^In resource (.+?), in XML element '(.+?)', the compound word '(.+?)' in '(.+?)' exists as a discrete term\. If your usage is intended to be single word, case it as '(.+?)'\.$</Pattern>
837+ </Resolution>
838+ <Resolution>
839+ <Content>XML リソース {0} の要素 '{1}' の文字列 '{3}' に含まれる複合語 '{2}' が API の識別子を指しているのなら '{5}' に変更してください。そうでなければ複合語にせず、2 つの単語に分割してください。</Content>
840+ <Pattern>^In resource (.+?), in XML element '(.+?)', the discrete term '(.+?)' in '(.+?)' should be expressed as a compound word\. If '(.+?)' refers to an API identifier, case it as '(.+?)', otherwise split it into two words separated by a space\.$</Pattern>
841+ </Resolution>
842+ <Resolution>
843+ <Content>コンポーネント {0} の '{1}' に設定されている文字列 '{3}' に含まれる複合語 '{2}' を '{4}' に変更してください。</Content>
844+ <Pattern>^In component (.+?), on '(.+?)', the compound word '(.+?)' in '(.+?)' exists as a discrete term\. If your usage is intended to be single word, case it as '(.+?)'\.$</Pattern>
845+ </Resolution>
846+ <Resolution>
847+ <Content>コンポーネント {0} の '{1}' に設定されている文字列 '{3}' に含まれる複合語 '{2}' が API の識別子を指しているのなら '{5}' に変更してください。そうでなければ複合語にせず、2 つの単語に分割してください。</Content>
848+ <Pattern>^In component (.+?), on '(.+?)', the discrete term '(.+?)' in '(.+?)' should be expressed as a compound word\. If '(.+?)' refers to an API identifier, case it as '(.+?)', otherwise split it into two words separated by a space\.$</Pattern>
849+ </Resolution>
850+ </Rule>
851+ <Rule CheckId="CA1702" Category="Microsoft.Naming">
852+ <Name>識別子を構成する各単語は 1 文字目の大文字/小文字を適切に使い分ける</Name>
853+ <Resolution>
854+ <Content>アセンブリ名 {1} に含まれる複合語 '{0}' を '{2}' に変更してください。</Content>
855+ <Pattern>^The compound word '(.+?)' in assembly name (.+?) exists as a discrete term\. If your usage is intended to be single word, case it as '(.+?)'\.$</Pattern>
856+ </Resolution>
857+ <Resolution>
858+ <Content>名前空間 {1} に含まれる複合語 '{0}' を '{2}' に変更してください。</Content>
859+ <Pattern>^The compound word '(.+?)' in namespace name '(.+?)' exists as a discrete term\. If your usage is intended to be single word, case it as '(.+?)'\.$</Pattern>
860+ </Resolution>
861+ <Resolution>
862+ <Content>{0} の引数名 {2} に含まれる複合語 '{1}' を '{3}' に変更してください。</Content>
863+ <Pattern>^In member (.+?), the compound word '(.+?)' in parameter name (.+?) exists as a discrete term\. If your usage is intended to be single word, case it as '(.+?)' or strip the first token entirely if it represents any sort of Hungarian notation\.$</Pattern>
864+ </Resolution>
865+ <Resolution>
866+ <Content>デリゲート {0} の引数名 {2} に含まれる複合語 '{1}' を '{3}' に変更してください。</Content>
867+ <Pattern>^In delegate (.+?), the compound word '(.+?)' in parameter name (.+?) exists as a discrete term\. If your usage is intended to be single word, case it as '(.+?)' or strip the first token entirely if it represents any sort of Hungarian notation\.$</Pattern>
868+ </Resolution>
869+ <Resolution>
870+ <Content>メソッド {0} の型引数名 {2} に含まれる複合語 '{1}' を '{3}' に変更してください。</Content>
871+ <Pattern>^On method (.+?), the compound word '(.+?)' in generic type parameter name (.+?) exists as a discrete term\. If your usage is intended to be single word, case it as '(.+?)'\.$</Pattern>
872+ </Resolution>
873+ <Resolution>
874+ <Content>型 {0} の型引数名 {2} に含まれる複合語 '{1}' を '{3}' に変更してください。</Content>
875+ <Pattern>^On type (.+?), the compound word '(.+?)' in generic type parameter name (.+?) exists as a discrete term\. If your usage is intended to be single word, case it as '(.+?)'\.$</Pattern>
876+ </Resolution>
877+ <Resolution>
878+ <Content>型名 {0} に含まれる複合語 '{1}' を '{2}' に変更してください。</Content>
879+ <Pattern>^The compound word '(.+?)' in type name (.+?) exists as a discrete term\. If your usage is intended to be single word, case it as '(.+?)'\.$</Pattern>
880+ </Resolution>
881+ <Resolution>
882+ <Content>メンバー名 {1} に含まれる複合語 '{0}' を '{2}' に変更してください。</Content>
883+ <Pattern>^The compound word '(.+?)' in member name (.+?) exists as a discrete term\. If your usage is intended to be single word, case it as '(.+?)' or strip the first token entirely if it represents any sort of Hungarian notation\.$</Pattern>
884+ </Resolution>
885+ <Resolution>
886+ <Content>アセンブリ名 {1} に含まれる '{0}' を複合語 '{2}' に変更してください。</Content>
887+ <Pattern>^The discrete term '(.+?)' in assembly name (.+?) should be expressed as a compound word, '(.+?)'\.$</Pattern>
888+ </Resolution>
889+ <Resolution>
890+ <Content>名前空間 {1} に含まれる '{0}' を複合語 '{2}' に変更してください。</Content>
891+ <Pattern>^The discrete term '(.+?)' in namespace name '(.+?)' should be expressed as a compound word, '(.+?)'\.$</Pattern>
892+ </Resolution>
893+ <Resolution>
894+ <Content>{0} の引数名 {2} に含まれる '{1}' を複合語 '{3}' に変更してください。</Content>
895+ <Pattern>^In member (.+?), the discrete term '(.+?)' in parameter name (.+?) should be expressed as a compound word, '(.+?)'\.$</Pattern>
896+ </Resolution>
897+ <Resolution>
898+ <Content>デリゲート {0} の引数名 {2} に含まれる '{1}' を複合語 '{3}' に変更してください。</Content>
899+ <Pattern>^In delegate (.+?), the discrete term '(.+?)' in parameter name (.+?) should be expressed as a compound word, '(.+?)'\.$</Pattern>
900+ </Resolution>
901+ <Resolution>
902+ <Content>メソッド {0} の型引数名 {2} に含まれる '{1}' を複合語 '{3}' に変更してください。</Content>
903+ <Pattern>^On method (.+?), the discrete term '(.+?)' in generic type parameter name (.+?) should be expressed as a compound word, '(.+?)'\.$</Pattern>
904+ </Resolution>
905+ <Resolution>
906+ <Content>型 {0} の型引数名 {2} に含まれる '{1}' を複合語 '{3}' に変更してください。</Content>
907+ <Pattern>^On type (.+?), the discrete term '(.+?)' in generic type parameter name (.+?) should be expressed as a compound word, '(.+?)'\.$</Pattern>
908+ </Resolution>
909+ <Resolution>
910+ <Content>型名 {1} に含まれる '{0}' を複合語 '{2}' に変更してください。</Content>
911+ <Pattern>^The discrete term '(.+?)' in type name (.+?) should be expressed as a compound word, '(.+?)'\.$</Pattern>
912+ </Resolution>
913+ <Resolution>
914+ <Content>メンバー名 {1} に含まれる '{0}' を複合語 '{2}' に変更してください。</Content>
915+ <Pattern>^The discrete term '(.+?)' in member name (.+?) should be expressed as a compound word, '(.+?)'\.$</Pattern>
916+ </Resolution>
917+ </Rule>
918+ <Rule CheckId="CA1703" Category="Microsoft.Naming">
919+ <Name>リソース文字列を正しくスペリングする</Name>
920+ <Resolution>
921+ <Content>リソース {0} 内のキー '{1}' に対応する文字列 '{3}' に含まれる単語 '{2}' のスペルを修正してください。</Content>
922+ <Pattern>^In resource (.+?), referenced by name '(.+?)', correct the spelling of '(.+?)' in string value '(.+?)'\.$</Pattern>
923+ </Resolution>
924+ <Resolution>
925+ <Content>リソース {0} 内の XML 要素 '{1}' の文字列 "{3}' に含まれる単語 '{2}' のスペルを修正してください。</Content>
926+ <Pattern>^In resource (.+?), in XML element '(.+?)', correct the spelling of '(.+?)' in '(.+?)'\.$</Pattern>
927+ </Resolution>
928+ <Resolution>
929+ <Content>コンポーネント {0} 内の '{1}' に設定されている文字列 '{3}' に含まれる単語 '{2}' のスペルを修正してください。</Content>
930+ <Pattern>^In component (.+?), on '(.+?)', correct the spelling of '(.+?)' in '(.+?)'\.$</Pattern>
931+ </Resolution>
932+ </Rule>
933+ <Rule CheckId="CA1704" Category="Microsoft.Naming">
934+ <Name>識別子には正しいスペルの単語を使用する</Name>
935+ <Resolution>
936+ <Content>アセンブリ {1} の名前に含まれる単語 '{0}' のスペルを修正してください。</Content>
937+ <Pattern>^Correct the spelling of '(.+?)' in assembly name (.+?)\.$</Pattern>
938+ </Resolution>
939+ <Resolution>
940+ <Content>名前空間 {1} の名前に含まれる単語 '{0}' のスペルを修正してください。</Content>
941+ <Pattern>^Correct the spelling of '(.+?)' in namespace name '(.+?)'\.$</Pattern>
942+ </Resolution>
943+ <Resolution>
944+ <Content>型 {1} の名前に含まれる単語 '{0}' のスペルを修正してください。</Content>
945+ <Pattern>^Correct the spelling of '(.+?)' in type name (.+?)\.$</Pattern>
946+ </Resolution>
947+ <Resolution>
948+ <Content>型のメンバー {1} の名前に含まれる単語 '{0}' のスペルを修正してください。また、ハンガリアン表記は避けてください。</Content>
949+ <Pattern>^Correct the spelling of '(.+?)' in member name (.+?) or remove it entirely if it represents any sort of Hungarian notation\.$</Pattern>
950+ </Resolution>
951+ <Resolution>
952+ <Content>メソッド {0} の引数名 {2} に含まれる単語 '{1}' のスペルを修正してください。また、ハンガリアン表記は避けてください。</Content>
953+ <Pattern>^In method (.+?), correct the spelling of '(.+?)' in parameter name (.+?) or remove it entirely if it represents any sort of Hungarian notation\.$</Pattern>
954+ </Resolution>
955+ <Resolution>
956+ <Content>デリゲート {0} の引数名 {2} に含まれる単語 '{1}' のスペルを修正してください。また、ハンガリアン表記は避けてください。</Content>
957+ <Pattern>^In delegate (.+?), correct the spelling of '(.+?)' in parameter name (.+?) or remove it entirely if it represents any sort of Hungarian notation\.$</Pattern>
958+ </Resolution>
959+ <Resolution>
960+ <Content>型 {0} の型引数名 {2} に含まれる単語 '{1}' のスペルを修正してください。</Content>
961+ <Pattern>^On type (.+?), correct the spelling of '(.+?)' in generic type parameter name (.+?)\.$</Pattern>
962+ </Resolution>
963+ <Resolution>
964+ <Content>メソッド {0} の型引数名 {2} に含まれる単語 '{1}' のスペルを修正してください。</Content>
965+ <Pattern>^On method (.+?), correct the spelling of '(.+?)' in generic type parameter name (.+?)\.$</Pattern>
966+ </Resolution>
967+ <Resolution>
968+ <Content>アセンブリ名 {0} をもっと意味のとれる名前に変更してください。</Content>
969+ <Pattern>^Consider providing a more meaningful name than assembly name (.+?)\.$</Pattern>
970+ </Resolution>
971+ <Resolution>
972+ <Content>名前空間 {0} をもっと意味のとれる名前に変更してください。</Content>
973+ <Pattern>^Consider providing a more meaningful name than namespace name '(.+?)'\.$</Pattern>
974+ </Resolution>
975+ <Resolution>
976+ <Content>型 {0} をもっと意味のとれる名前に変更してください。</Content>
977+ <Pattern>^Consider providing a more meaningful name than type name (.+?)\.$</Pattern>
978+ </Resolution>
979+ <Resolution>
980+ <Content>型のメンバー {0} をもっと意味のとれる名前に変更してください。</Content>
981+ <Pattern>^Consider providing a more meaningful name than member name (.+?)\.$</Pattern>
982+ </Resolution>
983+ <Resolution>
984+ <Content>メソッド {0} の引数名 {1} をもっと意味のとれる名前に変更してください。</Content>
985+ <Pattern>^In method (.+?), consider providing a more meaningful name than parameter name (.+?)\.$</Pattern>
986+ </Resolution>
987+ <Resolution>
988+ <Content>デリゲート{0} の引数名 {1} をもっと意味のとれる名前に変更してください。</Content>
989+ <Pattern>^In delegate (.+?), consider providing a more meaningful name than parameter name (.+?)\.$</Pattern>
990+ </Resolution>
991+ <Resolution>
992+ <Content>型{0} の型引数名 {1} をもっと意味のとれる名前に変更してください。</Content>
993+ <Pattern>^On type (.+?), consider providing a more meaningful name than generic type parameter name (.+?)\.$</Pattern>
994+ </Resolution>
995+ <Resolution>
996+ <Content>メソッド{0} の型引数名 {1} をもっと意味のとれる名前に変更してください。</Content>
997+ <Pattern>^On method (.+?), consider providing a more meaningful name than generic type parameter name (.+?)\.$</Pattern>
998+ </Resolution>
999+ </Rule>
1000+ <Rule CheckId="CA1707" Category="Microsoft.Naming">
1001+ <Name>識別子にはアンダースコアを含めない</Name>
1002+ <Resolution>
1003+ <Content>アセンブリ名 {0} からアンダースコアを削除してください。</Content>
1004+ <Pattern>^Remove the underscores from assembly name (.+?)\.$</Pattern>
1005+ </Resolution>
1006+ <Resolution>
1007+ <Content>名前空間 {0} からアンダースコアを削除してください。</Content>
1008+ <Pattern>^Remove the underscores from namespace name '(.+?)'\.$</Pattern>
1009+ </Resolution>
1010+ <Resolution>
1011+ <Content>型名 {0} からアンダースコアを削除してください。</Content>
1012+ <Pattern>^Remove the underscores from type name (.+?)\.$</Pattern>
1013+ </Resolution>
1014+ <Resolution>
1015+ <Content>メンバー名 {0} からアンダースコアを削除してください。</Content>
1016+ <Pattern>^Remove the underscores from member name (.+?)\.$</Pattern>
1017+ </Resolution>
1018+ <Resolution>
1019+ <Content>型 {0} の型引数名 {1} からアンダースコアを削除してください。</Content>
1020+ <Pattern>^On type (.+?), remove the underscores from generic type parameter name (.+?)\.$</Pattern>
1021+ </Resolution>
1022+ <Resolution>
1023+ <Content>メソッド {0} の型引数名 {1} からアンダースコアを削除してください。</Content>
1024+ <Pattern>^On method (.+?), remove the underscores from generic type parameter name (.+?)\.$</Pattern>
1025+ </Resolution>
1026+ <Resolution>
1027+ <Content>{0} の引数名 {1} からアンダースコアを削除してください。</Content>
1028+ <Pattern>^In member (.+?), remove the underscores from parameter name (.+?)\.$</Pattern>
1029+ </Resolution>
1030+ <Resolution>
1031+ <Content>デリゲート {0} の引数名 {1} からアンダースコアを削除してください。</Content>
1032+ <Pattern>^In delegate (.+?), remove the underscores from parameter name (.+?)\.$</Pattern>
1033+ </Resolution>
1034+ </Rule>
1035+ <Rule CheckId="CA1708" Category="Microsoft.Naming">
1036+ <Name>大文字/小文字だけが異なる名前を識別子として採用しない</Name>
1037+ <Resolution>
1038+ <Content>メンバー {0} と '{1}' の名前を変更し、大文字/小文字以外の違いを持たせてください。</Content>
1039+ <Pattern>^Change member names (.+?) and '(.+?)' so that they differ by more than case\.$</Pattern>
1040+ </Resolution>
1041+ <Resolution>
1042+ <Content>型 {0} と '{1}' の名前を変更し、大文字/小文字以外の違いを持たせてください。</Content>
1043+ <Pattern>^Change type names (.+?) and '(.+?)' so that they differ by more than case\.$</Pattern>
1044+ </Resolution>
1045+ <Resolution>
1046+ <Content>名前空間 {0} と '{1}' の名前を変更し、大文字/小文字以外の違いを持たせてください。</Content>
1047+ <Pattern>^Change namespace names (.+?) and '(.+?)' so that they differ by more than case\.$</Pattern>
1048+ </Resolution>
1049+ <Resolution>
1050+ <Content>引数 {0} と '{1}' の名前を変更し、大文字/小文字以外の違いを持たせてください。</Content>
1051+ <Pattern>^Change parameter names (.+?) and '(.+?)' so that they differ by more than case\.$</Pattern>
1052+ </Resolution>
1053+ </Rule>
1054+ <Rule CheckId="CA1709" Category="Microsoft.Naming">
1055+ <Name>識別子の大文字/小文字を正しく使い分ける</Name>
1056+ <Resolution>
1057+ <Content>アセンブリ名 {1} に含まれる '{0}' を '{2}' に変更してください。</Content>
1058+ <Pattern>^Correct the casing of '(.+?)' in assembly name (.+?) by changing it to '(.+?)'\.$</Pattern>
1059+ </Resolution>
1060+ <Resolution>
1061+ <Content>名前空間 {1} に含まれる '{0}' を '{2}' に変更してください。</Content>
1062+ <Pattern>^Correct the casing of '(.+?)' in namespace name '(.+?)' by changing it to '(.+?)'\.$</Pattern>
1063+ </Resolution>
1064+ <Resolution>
1065+ <Content>型名 {1} に含まれる '{0}' を '{2}' に変更してください。</Content>
1066+ <Pattern>^Correct the casing of '(.+?)' in type name (.+?) by changing it to '(.+?)'\.$</Pattern>
1067+ </Resolution>
1068+ <Resolution>
1069+ <Content>メンバー名 {1} に含まれる '{0}' を '{2}' に変更してください。</Content>
1070+ <Pattern>^Correct the casing of '(.+?)' in member name (.+?) by changing it to '(.+?)'\.$</Pattern>
1071+ </Resolution>
1072+ <Resolution>
1073+ <Content>{0} の引数名 {2} に含まれる '{1}' を '{3}' に変更してください。</Content>
1074+ <Pattern>^In member (.+?), correct the casing of '(.+?)' in parameter name (.+?) by changing it to '(.+?)'\.$</Pattern>
1075+ </Resolution>
1076+ <Resolution>
1077+ <Content>デリゲート {0} の引数名 {2} に含まれる '{1}' を '{3}' に変更してください。</Content>
1078+ <Pattern>^In delegate (.+?), correct the casing of '(.+?)' in parameter name (.+?) by changing it to '(.+?)'\.$</Pattern>
1079+ </Resolution>
1080+ <Resolution>
1081+ <Content>型 {0} の型引数名 {2} に含まれる '{1}' を '{3}' に変更してください。</Content>
1082+ <Pattern>^On type (.+?), correct the casing of '(.+?)' in generic type parameter name (.+?) by changing it to '(.+?)'\.$</Pattern>
1083+ </Resolution>
1084+ <Resolution>
1085+ <Content>メソッド {0} の型引数名 {2} に含まれる '{1}' を '{3}' に変更してください。</Content>
1086+ <Pattern>^On method (.+?), correct the casing of '(.+?)' in generic type parameter name (.+?) by changing it to '(.+?)'\.$</Pattern>
1087+ </Resolution>
1088+ <Resolution>
1089+ <Content>アセンブリ名 {1} に含まれる '{0}' を '{2}' に変更してください。</Content>
1090+ <Pattern>^Correct the casing of '(.+?)' in assembly name (.+?) by changing it to '(.+?)'\. '(.+?)' is an abbreviation and therefore is not subject to acronym casing guidelines\.$</Pattern>
1091+ </Resolution>
1092+ <Resolution>
1093+ <Content>名前空間 {1} に含まれる '{0}' を '{2}' に変更してください。</Content>
1094+ <Pattern>^Correct the casing of '(.+?)' in namespace name '(.+?)' by changing it to '(.+?)'\. '(.+?)' is an abbreviation and therefore is not subject to acronym casing guidelines\.$</Pattern>
1095+ </Resolution>
1096+ <Resolution>
1097+ <Content>型名 {1} に含まれる '{0}' を '{2}' に変更してください。</Content>
1098+ <Pattern>^Correct the casing of '(.+?)' in type name (.+?) by changing it to '(.+?)'\. '(.+?)' is an abbreviation and therefore is not subject to acronym casing guidelines\.$</Pattern>
1099+ </Resolution>
1100+ <Resolution>
1101+ <Content>メンバー名 {1} に含まれる '{0}' を '{2}' に変更してください。</Content>
1102+ <Pattern>^Correct the casing of '(.+?)' in member name (.+?) by changing it to '(.+?)'\. '(.+?)' is an abbreviation and therefore is not subject to acronym casing guidelines\.$</Pattern>
1103+ </Resolution>
1104+ <Resolution>
1105+ <Content>{0} の引数名 {2} に含まれる '{1}' を '{3}' に変更してください。</Content>
1106+ <Pattern>^In member (.+?), correct the casing of '(.+?)' in parameter name (.+?) by changing it to '(.+?)'\. '(.+?)' is an abbreviation and therefore is not subject to acronym casing guidelines\.$</Pattern>
1107+ </Resolution>
1108+ <Resolution>
1109+ <Content>デリゲート {0} の引数名 {2} に含まれる '{1}' を '{3}' に変更してください。</Content>
1110+ <Pattern>^In delegate (.+?), correct the casing of '(.+?)' in parameter name (.+?) by changing it to '(.+?)'\. '(.+?)' is an abbreviation and therefore is not subject to acronym casing guidelines\.$</Pattern>
1111+ </Resolution>
1112+ <Resolution>
1113+ <Content>型 {0} の型引数名 {2} に含まれる '{1}' を '{3}' に変更してください。</Content>
1114+ <Pattern>^On type (.+?), correct the casing of '(.+?)' in generic type parameter name (.+?) by changing it to '(.+?)'\. '(.+?)' is an abbreviation and therefore is not subject to acronym casing guidelines\.$</Pattern>
1115+ </Resolution>
1116+ <Resolution>
1117+ <Content>メソッド {0} の型引数名 {2} に含まれる '{1}' を '{3}' に変更してください。</Content>
1118+ <Pattern>^On method (.+?), correct the casing of '(.+?)' in generic type parameter name (.+?) by changing it to '(.+?)'\. '(.+?)' is an abbreviation and therefore is not subject to acronym casing guidelines\.$</Pattern>
1119+ </Resolution>
1120+ </Rule>
1121+ <Rule CheckId="CA1710" Category="Microsoft.Naming">
1122+ <Name>特定の型やインターフェースを継承階層に含む型には適切なサフィックスを付ける</Name>
1123+ <Resolution>
1124+ <Content>{0} にサフィックス '{1}' を付けてください。</Content>
1125+ <Pattern>^Rename (.+?) to end in '(.+?)'\.$</Pattern>
1126+ </Resolution>
1127+ <Resolution>
1128+ <Content>{0} にサフィックス 'Collection' もしくは '{1}' を付けてください。</Content>
1129+ <Pattern>^Rename (.+?) to end in either 'Collection' or '(.+?)'\.$</Pattern>
1130+ </Resolution>
1131+ </Rule>
1132+ <Rule CheckId="CA1711" Category="Microsoft.Naming">
1133+ <Name>識別子に不適切なサフィックスを付けない</Name>
1134+ <Resolution>
1135+ <Content>型名 {0} からサフィックス '{1}' を削除してください。</Content>
1136+ <Pattern>^Rename type name (.+?) so that it does not end in '(.+?)'\.$</Pattern>
1137+ </Resolution>
1138+ <Resolution>
1139+ <Content>メンバー名 {1} からサフィックス '{0}' を削除してください。</Content>
1140+ <Pattern>^Either replace the suffix '(.+?)' in member name (.+?) with the suggested numeric alternate '2' or provide a more meaningful suffix that distinguishes it from the member it replaces\.$</Pattern>
1141+ </Resolution>
1142+ <Resolution>
1143+ <Content>型名 {1} からサフィックス '{0}' を削除してください。</Content>
1144+ <Pattern>^Either replace the suffix '(.+?)' in type name (.+?) with the suggested numeric alternate '2' or provide a more meaningful suffix that distinguishes it from the type it replaces\.$</Pattern>
1145+ </Resolution>
1146+ <Resolution>
1147+ <Content>メンバー名 '{1}' からサフィックス '{0}' を削除するか、代わりに '{2}' を付けてください。</Content>
1148+ <Pattern>^Either replace the suffix '(.+?)' in member name '(.+?)' with the suggested alternate '(.+?)' or remove the suffix completely\.$</Pattern>
1149+ </Resolution>
1150+ </Rule>
1151+ <Rule CheckId="CA1712" Category="Microsoft.Naming">
1152+ <Name>列挙型名を列挙値名のプレフィックスにしない</Name>
1153+ <Resolution>
1154+ <Content>{1} からプレフィックス {0} を削除してください。</Content>
1155+ <Pattern>^Remove (.+?) from (.+?)\.$</Pattern>
1156+ </Resolution>
1157+ </Rule>
1158+ <Rule CheckId="CA1713" Category="Microsoft.Naming">
1159+ <Name>Before や After をイベント名のプレフィックスにしない</Name>
1160+ <Resolution>
1161+ <Content>イベント名 {0} を現在時制を表す名前に変更してください。</Content>
1162+ <Pattern>^Replace (.+?) with a present tense version of the event name\.$</Pattern>
1163+ </Resolution>
1164+ <Resolution>
1165+ <Content>イベント名 {0} を過去時制を表す名前に変更してください。</Content>
1166+ <Pattern>^Replace (.+?) with a past tense version of the event name\.$</Pattern>
1167+ </Resolution>
1168+ </Rule>
1169+ <Rule CheckId="CA1714" Category="Microsoft.Naming">
1170+ <Name>Flags 属性が付加された列挙型の名前は複数形にする</Name>
1171+ <Resolution>
1172+ <Content>列挙型 {0} の名前を複数形に変更してください。</Content>
1173+ <Pattern>^If enumeration name (.+?) is singular, change it to a plural form\.$</Pattern>
1174+ </Resolution>
1175+ </Rule>
1176+ <Rule CheckId="CA1715" Category="Microsoft.Naming">
1177+ <Name>識別子に適切なプレフィックスを付ける</Name>
1178+ <Resolution>
1179+ <Content>インターフェース {0} の名前にプレフィックス 'I' を付けてください。</Content>
1180+ <Pattern>^Prefix interface name (.+?) with 'I'\.$</Pattern>
1181+ </Resolution>
1182+ <Resolution>
1183+ <Content>型 {0} の型引数 {1} の名前にプレフィックス 'T' を付けてください。</Content>
1184+ <Pattern>^On type (.+?), prefix generic type parameter name (.+?) with 'T'\.$</Pattern>
1185+ </Resolution>
1186+ <Resolution>
1187+ <Content>メソッド {0} の型引数 {1} の名前にプレフィックス 'T' を付けてください。</Content>
1188+ <Pattern>^On method (.+?), prefix generic type parameter name (.+?) with 'T'\.$</Pattern>
1189+ </Resolution>
1190+ </Rule>
1191+ <Rule CheckId="CA1716" Category="Microsoft.Naming">
1192+ <Name>.NET 対応言語の予約語を識別子として使用しない</Name>
1193+ <Resolution>
1194+ <Content>{0} の引数 {1} の名前として予約語 '{2}' を使わないでください。</Content>
1195+ <Pattern>^In virtual/interface member (.+?), rename parameter (.+?) so that it no longer conflicts with the reserved language keyword '(.+?)'\. Using a reserved keyword as the name of a parameter on a virtual/interface member makes it harder for consumers in other languages to override/implement the member\.$</Pattern>
1196+ </Resolution>
1197+ <Resolution>
1198+ <Content>メンバー {0} の名前として予約語 '{1}' を使わないでください。</Content>
1199+ <Pattern>^Rename virtual/interface member (.+?) so that it no longer conflicts with the reserved language keyword '(.+?)'\. Using a reserved keyword as the name of a virtual/interface member makes it harder for consumers in other languages to override/implement the member\.$</Pattern>
1200+ </Resolution>
1201+ <Resolution>
1202+ <Content>型 {0} の名前として予約語 '{1}' を使わないでください。</Content>
1203+ <Pattern>^Rename type (.+?) so that it no longer conflicts with the reserved language keyword '(.+?)'\. Using a reserved keyword as the name of a type makes it harder for consumers in other languages to use the type\.$</Pattern>
1204+ </Resolution>
1205+ <Resolution>
1206+ <Content>名前空間 {0} の名前として予約語 '{1}' を使わないでください。</Content>
1207+ <Pattern>^Rename namespace (.+?) so that it no longer conflicts with the reserved language keyword '(.+?)'\. Using a reserved keyword as the name of a namespace makes it harder for consumers in other languages to use the namespace\.$</Pattern>
1208+ </Resolution>
1209+ </Rule>
1210+ <Rule CheckId="CA1717" Category="Microsoft.Naming">
1211+ <Name>Flags 属性が付加されていない列挙型の名前は単数形にする</Name>
1212+ <Resolution>
1213+ <Content>列挙型 {0} の名前を単数形にしてください。</Content>
1214+ <Pattern>^If the name (.+?) is plural, change it to its singular form\.$</Pattern>
1215+ </Resolution>
1216+ </Rule>
1217+ <Rule CheckId="CA1719" Category="Microsoft.Naming">
1218+ <Name>メンバー名と引数名を同じにしない</Name>
1219+ <Resolution>
1220+ <Content>メンバー名か引数名のどちらかを {0} から変更してください。</Content>
1221+ <Pattern>^Change either member or parameter name (.+?) so that one differs from the other\.$</Pattern>
1222+ </Resolution>
1223+ </Rule>
1224+ <Rule CheckId="CA1720" Category="Microsoft.Naming">
1225+ <Name>識別子には型名を含めない</Name>
1226+ <Resolution>
1227+ <Content>{0} の引数名 {2} に型名 '{1}' を含めないでください。</Content>
1228+ <Pattern>^In member (.+?), consider replacing the data type identifier '(.+?)' in parameter name (.+?) with a more generic term, such as 'value'\.$</Pattern>
1229+ </Resolution>
1230+ <Resolution>
1231+ <Content>デリゲート {0} の引数名 {2} に型名 '{1}' を含めないでください。</Content>
1232+ <Pattern>^In delegate (.+?), consider replacing the data type identifier '(.+?)' in parameter name (.+?) with a more generic term, such as 'value'\.$</Pattern>
1233+ </Resolution>
1234+ <Resolution>
1235+ <Content>{0} の引数名 {2} に型名 '{1}' を含めないでください。</Content>
1236+ <Pattern>^In member (.+?), consider replacing the language-specific data type identifier '(.+?)' in parameter name (.+?) with a more generic term, such as 'value'\.$</Pattern>
1237+ </Resolution>
1238+ <Resolution>
1239+ <Content>デリゲート {0} の引数名 {2} に型名 '{1}' を含めないでください。</Content>
1240+ <Pattern>^In delegate (.+?), consider replacing the language-specific data type identifier '(.+?)' in parameter name (.+?) with a more generic term, such as 'value'\.$</Pattern>
1241+ </Resolution>
1242+ <Resolution>
1243+ <Content>メンバー名 {1} に型名 '{0}' を含めないでください。</Content>
1244+ <Pattern>^Consider replacing the language-specific data type identifier '(.+?)' in member name (.+?) with either a language-independent equivalent or a more generic term, such as 'value'\.$</Pattern>
1245+ </Resolution>
1246+ </Rule>
1247+ <Rule CheckId="CA1721" Category="Microsoft.Naming">
1248+ <Name>プロパティの名前と Get で始まるメソッドの名前を一致させない</Name>
1249+ <Resolution>
1250+ <Content>メソッド {1} と名前がかぶらないよう、プロパティ {0} の名前を変更してください。</Content>
1251+ <Pattern>^The property name (.+?) is confusing given the existence of method (.+?)\. Rename or remove one of these members\.$</Pattern>
1252+ </Resolution>
1253+ <Resolution>
1254+ <Content>基底クラスのメソッド {1} と名前がかぶらないよう、プロパティ {0} の名前を変更してください。</Content>
1255+ <Pattern>^The property name (.+?) is confusing given the existence of inherited method (.+?)\. Rename or remove this property\.$</Pattern>
1256+ </Resolution>
1257+ </Rule>
1258+ <Rule CheckId="CA1722" Category="Microsoft.Naming">
1259+ <Name>型名にプレフィックス 'C' を付けない</Name>
1260+ <Resolution>
1261+ <Content>型名 {0} からプレフィックス 'C' を削除してください。</Content>
1262+ <Pattern>^Remove the leading 'C' from type name (.+?)\.$</Pattern>
1263+ </Resolution>
1264+ </Rule>
1265+ <Rule CheckId="CA1724" Category="Microsoft.Naming">
1266+ <Name>型に特定の名前空間と一致する名前を付けない</Name>
1267+ <Resolution>
1268+ <Content>型 {0} の名前が名前空間 '{1}' とかぶらないように名前を変更してください。</Content>
1269+ <Pattern>^The type name (.+?) conflicts in whole or in part with the namespace name '(.+?)'\. Change either name to eliminate the conflict\.$</Pattern>
1270+ </Resolution>
1271+ <Resolution>
1272+ <Content>型 {0} の名前が名前空間 '{1}' とかぶらないように名前を変更してください。</Content>
1273+ <Pattern>^The type name (.+?) conflicts in whole or in part with the namespace name '(.+?)' defined in the \.NET Framework\. Rename the type to eliminate the conflict\.$</Pattern>
1274+ </Resolution>
1275+ </Rule>
1276+ <Rule CheckId="CA1725" Category="Microsoft.Naming">
1277+ <Name>オーバーライドしたメソッドの引数名は基底型で宣言されている名前に一致させる</Name>
1278+ <Resolution>
1279+ <Content>{0} の引数名 {1} を {2} に変更し、{3} の引数名と一致させてください。</Content>
1280+ <Pattern>^In member (.+?), change parameter name (.+?) to (.+?) in order to match the identifier as it has been declared in (.+?)\.$</Pattern>
1281+ </Resolution>
1282+ </Rule>
1283+ <Rule CheckId="CA1726" Category="Microsoft.Naming">
1284+ <Name>識別子には非推奨の用語を使用しない</Name>
1285+ <Resolution>
1286+ <Content>アセンブリ名 {1} に含まれている非推奨の用語 '{0}' を '{2}' に置き換えてください。</Content>
1287+ <Pattern>^Replace the term '(.+?)' in assembly name (.+?) with the preferred alternate '(.+?)'\.$</Pattern>
1288+ </Resolution>
1289+ <Resolution>
1290+ <Content>名前空間 {1} に含まれている非推奨の用語 '{0}' を '{2}' に置き換えてください。</Content>
1291+ <Pattern>^Replace the term '(.+?)' in namespace name '(.+?)' with the preferred alternate '(.+?)'\.$</Pattern>
1292+ </Resolution>
1293+ <Resolution>
1294+ <Content>{0} の引数名 {2} に含まれている非推奨の用語 '{1}' を '{3}' に置き換えてください。</Content>
1295+ <Pattern>^In member (.+?), replace the term '(.+?)' in parameter name (.+?) with the preferred alternate '(.+?)'\.$</Pattern>
1296+ </Resolution>
1297+ <Resolution>
1298+ <Content>デリゲート {0} の引数名 {2} に含まれている非推奨の用語 '{1}' を '{3}' に置き換えてください。</Content>
1299+ <Pattern>^In delegate (.+?), replace the term '(.+?)' in parameter name (.+?) with the preferred alternate '(.+?)'\.$</Pattern>
1300+ </Resolution>
1301+ <Resolution>
1302+ <Content>型 {0} の型引数名 {2} に含まれている非推奨の用語 '{1}' を '{3}' に置き換えてください。</Content>
1303+ <Pattern>^On type (.+?), replace the term '(.+?)' in generic type parameter name (.+?) with the preferred alternate '(.+?)'\.$</Pattern>
1304+ </Resolution>
1305+ <Resolution>
1306+ <Content>メソッド {0} の型引数名 {2} に含まれている非推奨の用語 '{1}' を '{3}' に置き換えてください。</Content>
1307+ <Pattern>^On method (.+?), replace the term '(.+?)' in generic type parameter name (.+?) with the preferred alternate '(.+?)'\.$</Pattern>
1308+ </Resolution>
1309+ <Resolution>
1310+ <Content>型名 {1} に含まれている非推奨の用語 '{0}' を '{2}' に置き換えてください。</Content>
1311+ <Pattern>^Replace the term '(.+?)' in type name (.+?) with the preferred alternate '(.+?)'\.$</Pattern>
1312+ </Resolution>
1313+ <Resolution>
1314+ <Content>メンバー名 {1} に含まれている非推奨の用語 '{0}' を '{2}' に置き換えてください。</Content>
1315+ <Pattern>^Replace the term '(.+?)' in member name (.+?) with the preferred alternate '(.+?)'\.$</Pattern>
1316+ </Resolution>
1317+ <Resolution>
1318+ <Content>アセンブリ名 {1} に含まれている非推奨の用語 '{0}' を削除してください。</Content>
1319+ <Pattern>^Replace the term '(.+?)' in assembly name (.+?) with an appropriate alternate or remove it entirely\.$</Pattern>
1320+ </Resolution>
1321+ <Resolution>
1322+ <Content>名前空間 {1} に含まれている非推奨の用語 '{0}' を削除してください。</Content>
1323+ <Pattern>^Replace the term '(.+?)' in namespace name '(.+?)' with an appropriate alternate or remove it entirely\.$</Pattern>
1324+ </Resolution>
1325+ <Resolution>
1326+ <Content>{0} の引数名 {2} 含まれている非推奨の用語 '{1}' を削除してください。</Content>
1327+ <Pattern>^In member (.+?), replace the term '(.+?)' in parameter name (.+?) with an appropriate alternate or remove it entirely\.$</Pattern>
1328+ </Resolution>
1329+ <Resolution>
1330+ <Content>デリゲート {0} の引数名 {2} 含まれている非推奨の用語 '{1}' を削除してください。</Content>
1331+ <Pattern>^In delegate (.+?), replace the term '(.+?)' in parameter name (.+?) with an appropriate alternate or remove it entirely\.$</Pattern>
1332+ </Resolution>
1333+ <Resolution>
1334+ <Content>型 {0} の型引数名 {2} 含まれている非推奨の用語 '{1}' を削除してください。</Content>
1335+ <Pattern>^On type (.+?), replace the term '(.+?)' in generic type parameter name (.+?) with an appropriate alternate or remove it entirely\.$</Pattern>
1336+ </Resolution>
1337+ <Resolution>
1338+ <Content>メソッド {0} の型引数名 {2} 含まれている非推奨の用語 '{1}' を削除してください。</Content>
1339+ <Pattern>^On method (.+?), replace the term '(.+?)' in generic type parameter name (.+?) with an appropriate alternate or remove it entirely\.$</Pattern>
1340+ </Resolution>
1341+ <Resolution>
1342+ <Content>型名 {1} に含まれている非推奨の用語 '{0}' を削除してください。</Content>
1343+ <Pattern>^Replace the term '(.+?)' in type name (.+?) with an appropriate alternate or remove it entirely\.$</Pattern>
1344+ </Resolution>
1345+ <Resolution>
1346+ <Content>メンバー名 {1} に含まれている非推奨の用語 '{0}' を削除してください。</Content>
1347+ <Pattern>^Replace the term '(.+?)' in member name (.+?) with an appropriate alternate or remove it entirely\.$</Pattern>
1348+ </Resolution>
1349+ </Rule>
1350+
1351+ <Rule CheckId="CA1800" Category="Microsoft.Performance">
1352+ <Name>不必要なキャストをしない</Name>
1353+ <Resolution>
1354+ <Content>変数 {0} はメソッド {2} で {1} 型に複数回キャストされています。余分なキャストを削除するためにキャスト結果を変数に入れておいてそれを再利用してください。</Content>
1355+ <Pattern>^(.+?), a variable, is cast to type (.+?) multiple times in method (.+?)\. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant (.+?) instruction\.$</Pattern>
1356+ </Resolution>
1357+ <Resolution>
1358+ <Content>引数 {0} はメソッド {2} で {1} 型に複数回キャストされています。余分なキャストを削除するためにキャスト結果を変数に入れておいてそれを再利用してください。</Content>
1359+ <Pattern>^(.+?), a parameter, is cast to type (.+?) multiple times in method (.+?)\. Cache the result of the 'as' operator or direct cast in order to eliminate the redundant (.+?) instruction\.$</Pattern>
1360+ </Resolution>
1361+ </Rule>
1362+ <Rule CheckId="CA1802" Category="Microsoft.Performance">
1363+ <Name>リテラルで初期化している定数は const とする</Name>
1364+ <Resolution>
1365+ <Content>フィールド {0} を 'const' に変更してください。このフィールドは 'static readonly' ですがリテラル '{1}' で初期化されています。</Content>
1366+ <Pattern>^Field (.+?) is declared as 'static readonly' but is initialized with a constant value '(.+?)'\. Mark this field as 'const' instead\.$</Pattern>
1367+ </Resolution>
1368+ <Resolution>
1369+ <Content>フィールド {0} を 'const' に変更してください。このフィールドは 'static readonly' ですが空文字列で初期化されています。</Content>
1370+ <Pattern>^Field (.+?) is declared as 'static readonly' but is initialized with an empty string \(""\)\. Mark this field as 'const' instead\.$</Pattern>
1371+ </Resolution>
1372+ </Rule>
1373+ <Rule CheckId="CA1804" Category="Microsoft.Performance">
1374+ <Name>不要なローカル変数を作らない</Name>
1375+ <Resolution>
1376+ <Content>{0} で宣言されている {2} 型の変数 {1} を削除してください。</Content>
1377+ <Pattern>^(.+?) declares a variable, (.+?), of type (.+?), which is never used or is only assigned to\. Use this variable or remove it\.$</Pattern>
1378+ </Resolution>
1379+ </Rule>
1380+ <Rule CheckId="CA1805" Category="Microsoft.Performance">
1381+ <Name>不必要なフィールド初期化コードを書かない</Name>
1382+ <Resolution>
1383+ <Content>{0} で {2} 型のフィールド {1} を {3} に初期化しないでください (このコードを書かなくても、実行時に {3} に初期化されます)。</Content>
1384+ <Pattern>^(.+?) initializes field (.+?) of type (.+?) to (.+?)\. Remove this initialization because it will be done automatically by the runtime\.$</Pattern>
1385+ </Resolution>
1386+ </Rule>
1387+ <Rule CheckId="CA1809" Category="Microsoft.Performance">
1388+ <Name>ローカル変数を作り過ぎない</Name>
1389+ <Resolution>
1390+ <Content>{0} のローカル変数の数を 64 以下にしてください (コンパイラによって内部的に作成されるローカル変数もあるので、その数も含めて 64 以下になるようにしてください)。</Content>
1391+ <Pattern>^(.+?) has (.+?) local variables, some of which may have been generated by the compiler\. Refactor (.+?) so that it uses fewer than 64 local variables\.$</Pattern>
1392+ </Resolution>
1393+ <Resolution>
1394+ <Content>{0} のローカル変数の数を 64 以下にしてください (コンパイラによって内部的にローカル変数が {2} つ作成されているので、その数も考慮してください)。</Content>
1395+ <Pattern>^(.+?) has (.+?) local variables, (.+?) of which were generated by the compiler\. Refactor (.+?) so that it uses fewer than 64 local variables\.$</Pattern>
1396+ </Resolution>
1397+ </Rule>
1398+ <Rule CheckId="CA1810" Category="Microsoft.Performance">
1399+ <Name>static コンストラクタを作らない</Name>
1400+ <Resolution>
1401+ <Content>{0} から static コンストラクタを削除し、全ての static フィールドをインラインで初期化してください。</Content>
1402+ <Pattern>^Initialize all static fields in (.+?) when those fields are declared and remove the explicit static constructor\.$</Pattern>
1403+ </Resolution>
1404+ </Rule>
1405+ <Rule CheckId="CA1811" Category="Microsoft.Performance">
1406+ <Name>不要なメンバーを作らない</Name>
1407+ <Resolution>
1408+ <Content>{0} を削除してください。外部から呼び出し可能なメンバーから利用されていないため、このコードは不要だと考えられます。</Content>
1409+ <Pattern>^(.+?) appears to have no upstream public or protected callers\.$</Pattern>
1410+ </Resolution>
1411+ </Rule>
1412+ <Rule CheckId="CA1812" Category="Microsoft.Performance">
1413+ <Name>インスタンス化されない internal クラスを作らない</Name>
1414+ <Resolution>
1415+ <Content>{0} を削除してください。アセンブリ内でこのクラスのインスタンスが一度も生成されていません。インスタンスを生成せずに static メンバーのみを使っているなら、static クラスに変更することを検討してください。</Content>
1416+ <Pattern>^(.+?) is an internal class that is apparently never instantiated\. If so, remove the code from the assembly\. If this class is intended to contain only static methods, consider adding a private constructor to prevent the compiler from generating a default constructor\.$</Pattern>
1417+ </Resolution>
1418+ </Rule>
1419+ <Rule CheckId="CA1813" Category="Microsoft.Performance">
1420+ <Name>属性クラスはシールする</Name>
1421+ <Resolution>
1422+ <Content>{0} をシールしてください。</Content>
1423+ <Pattern>^Seal (.+?), if possible\.$</Pattern>
1424+ </Resolution>
1425+ </Rule>
1426+ <Rule CheckId="CA1814" Category="Microsoft.Performance">
1427+ <Name>多次元配列ではなくジャグ配列を使用する</Name>
1428+ <Resolution>
1429+ <Content>{0} をジャグ配列に変更してください。</Content>
1430+ <Pattern>^(.+?) is a multidimensional array\. Replace it with a jagged array if possible\.$</Pattern>
1431+ </Resolution>
1432+ <Resolution>
1433+ <Content>{0} で {1} を返す代わりにジャグ配列を返すように変更してください。</Content>
1434+ <Pattern>^(.+?) returns a multidimensional array of (.+?)\. Replace it with a jagged array if possible\.$</Pattern>
1435+ </Resolution>
1436+ <Resolution>
1437+ <Content>{0} で {1} の代わりにジャグ配列を使うように変更してください。</Content>
1438+ <Pattern>^(.+?) uses a multidimensional array of (.+?)\. Replace it with a jagged array if possible\.$</Pattern>
1439+ </Resolution>
1440+ </Rule>
1441+ <Rule CheckId="CA1815" Category="Microsoft.Performance">
1442+ <Name>値型では Equals メソッドと == 演算子を実装する</Name>
1443+ <Resolution>
1444+ <Content>{0} で Equals メソッドをオーバーライドしてください。</Content>
1445+ <Pattern>^(.+?) should override Equals\.$</Pattern>
1446+ </Resolution>
1447+ <Resolution>
1448+ <Content>{0} で== 演算子と != 演算子のオーバーロードメソッドを実装してください。</Content>
1449+ <Pattern>^(.+?) should override the equality \(==\) and inequality \(!=\) operators\.$</Pattern>
1450+ </Resolution>
1451+ </Rule>
1452+ <Rule CheckId="CA1819" Category="Microsoft.Performance">
1453+ <Name>配列型のプロパティを作らない</Name>
1454+ <Resolution>
1455+ <Content>{0} をコレクション型に変更するか、もしくはメソッドにしてください。</Content>
1456+ <Pattern>^Change (.+?) to return a collection or make it a method\.$</Pattern>
1457+ </Resolution>
1458+ </Rule>
1459+ <Rule CheckId="CA1820" Category="Microsoft.Performance">
1460+ <Name>空文字列のチェックには Length プロパティを使用する</Name>
1461+ <Resolution>
1462+ <Content>{1} の{0} を null チェックと 'String.Length == 0' の組み合わせに変更してください。</Content>
1463+ <Pattern>^Replace the call to (.+?) in (.+?) with a check for non-null and 'String\.Length == 0'\.$</Pattern>
1464+ </Resolution>
1465+ <Resolution>
1466+ <Content>{1} の {0} を 'String.IsNullOrEmpty' の呼び出しに変更してください。</Content>
1467+ <Pattern>^Replace the call to (.+?) in (.+?) with a call to 'String\.IsNullOrEmpty'\.$</Pattern>
1468+ </Resolution>
1469+ </Rule>
1470+ <Rule CheckId="CA1821" Category="Microsoft.Performance">
1471+ <Name>空のファイナライザを作らない</Name>
1472+ <Resolution>
1473+ <Content>{0} からファイナライザを削除してください。</Content>
1474+ <Pattern>^(.+?) implements a finalizer that only calls conditionally emitted methods or the base type finalizer\. Remove the finalizer or ensure that it is only conditionally compiled into the assembly\. If this violation occurs against a finalizer that is entirely wrapped in a conditionally-emitted block of code, suppress this message\.$</Pattern>
1475+ </Resolution>
1476+ </Rule>
1477+ <Rule CheckId="CA1822" Category="Microsoft.Performance">
1478+ <Name>メンバーをstaticに変更する</Name>
1479+ <Resolution>
1480+ <Content>{0} でインスタンスメンバーを一度も使用していません。メンバーを static (Visual Basic の場合は Shared) にするか、インスタンスメンバーを使用するように変更してください。</Content>
1481+ <Pattern>^The 'this' parameter \(or 'Me' in Visual Basic\) of (.+?) is never used. Mark the member as static \(or Shared in Visual Basic\) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate.$</Pattern>
1482+ </Resolution>
1483+ </Rule>
1484+ <Rule CheckId="CA1823" Category="Microsoft.Performance">
1485+ <Name>不要な private フィールドを作らない</Name>
1486+ <Resolution>
1487+ <Content>未使用のフィールド {0} を削除してください。</Content>
1488+ <Pattern>^It appears that field (.+?) is never used or is only ever assigned to\. Use this field or remove it\.$</Pattern>
1489+ </Resolution>
1490+ </Rule>
1491+ <Rule CheckId="CA1824" Category="Microsoft.Performance">
1492+ <Name>アセンブリに NeutralResourcesLanguage 属性を付加する</Name>
1493+ <Resolution>
1494+ <Content>アセンブリ {0} に NeutralResourcesLanguage 属性を付加し、アセンブリ内のリソースの言語を指定してください。</Content>
1495+ <Pattern>^Because assembly (.+?) contains a ResX-based resource file, mark it with the NeutralResourcesLanguage attribute, specifying the language of the resources within the assembly\. This could improve lookup performance the first time a resource is retrieved\.$</Pattern>
1496+ </Resolution>
1497+ </Rule>
1498+
1499+ <Rule CheckId="CA1900" Category="Microsoft.Portability">
1500+ <Name>値型フィールドを正しくアラインメントする</Name>
1501+ <Resolution>
1502+ <Content>{0} のフィールド {1} を修正し、64 ビットプラットフォームのアンマネージコードにマーシャリングされる際に正しくアラインメントされるようにしてください。</Content>
1503+ <Pattern>^Structure (.+?) contains the following non-portable fields: (.+?)\.$</Pattern>
1504+ </Resolution>
1505+ </Rule>
1506+ <Rule CheckId="CA1901" Category="Microsoft.Portability">
1507+ <Name>P/Invoke 宣言には 32bit でも 64bit でも正しく動作する型を使用する</Name>
1508+ <Resolution>
1509+ <Content>メソッド {1} の引数 {0} の型を変更してください。プラットフォーム呼び出しメソッド {1} の引数 {0} の型は {3} プラットフォームでは {2} バイトですが、アンマネージ API は {5} プラットフォーム上の {4} バイトの型として宣言されています。どの型を代わりに使用すべきかは、MSDN プラットフォーム SDK のヘルプを参照してください。</Content>
1510+ <Pattern>^As it is declared in your code, parameter (.+?) of P/Invoke (.+?) will be (.+?) bytes wide on (.+?) platforms\. This is not correct, as the actual native declaration of this API indicates it should be (.+?) bytes wide on (.+?) platforms\. Consult the MSDN Platform SDK documentation for help determining what data type should be used instead of (.+?)\.$</Pattern>
1511+ </Resolution>
1512+ <Resolution>
1513+ <Content>メソッド {0} の戻り値の型を変更してください。プラットフォーム呼び出しメソッド {0} の戻り値の型は {2} プラットフォームでは {1} バイトですが、アンマネージ API は {4} プラットフォーム上の {3} バイトの型として宣言されています。どの型を代わりに使用すべきかは、MSDN プラットフォーム SDK のヘルプを参照してください。</Content>
1514+ <Pattern>^As it is declared in your code, the return type of P/Invoke (.+?) will be (.+?) bytes wide on (.+?) platforms\. This is not correct, as the actual native declaration of this API indicates it should be (.+?) bytes wide on (.+?) platforms\. Consult the MSDN Platform SDK documentation for help determining what data type should be used instead of (.+?)\.$</Pattern>
1515+ </Resolution>
1516+ </Rule>
1517+ <Rule CheckId="CA1903" Category="Microsoft.Portability">
1518+ <Name>サービスパックで新たに導入された機能を利用しない</Name>
1519+ <Resolution>
1520+ <Content>プロジェクトが対象としている .NET Framework ({3}) の {2} で導入された型 {1} を使わないように {0} を修正してください。</Content>
1521+ <Pattern>^Type (.+?) uses type (.+?)\. Because this type was introduced in (.+?), which was not included in the project's target framework, (.+?), your application may fail to run on systems without this service pack installed\.$</Pattern>
1522+ </Resolution>
1523+ <Resolution>
1524+ <Content>プロジェクトが対象としている .NET Framework ({3}) の {2} で導入されたメンバー {1} を使わないように {0} を修正してください。</Content>
1525+ <Pattern>^Type (.+?) uses member (.+?)\. Because this member was introduced in (.+?), which was not included in the project's target framework, (.+?), your application may fail to run on systems without this service pack installed\.$</Pattern>
1526+ </Resolution>
1527+ <Resolution>
1528+ <Content>プロジェクトが対象としている .NET Framework ({3}) の {2} で導入された型 {1} を使わないように {0} を修正してください。</Content>
1529+ <Pattern>^Member (.+?) uses type (.+?)\. Because this type was introduced in (.+?), which was not included in the project's target framework, (.+?), your application may fail to run on systems without this service pack installed\.$</Pattern>
1530+ </Resolution>
1531+ <Resolution>
1532+ <Content>プロジェクトが対象としている .NET Framework ({3}) の {2} で導入されたメンバー {1} を使わないように {0} を修正してください。</Content>
1533+ <Pattern>^Member (.+?) uses member (.+?)\. Because this member was introduced in (.+?), which was not included in the project's target framework, (.+?), your application may fail to run on systems without this service pack installed\.$</Pattern>
1534+ </Resolution>
1535+ <Resolution>
1536+ <Content>プロジェクトが対象としている .NET Framework ({3}) の {2} で導入されたメンバー {1} を使わないように {0} を修正してください。</Content>
1537+ <Pattern>^Assembly (.+?) is marked with an attribute that uses member (.+?)\. Because this member was introduced in (.+?), which was not included in the project's target framework, (.+?), your application may fail to run on systems without this service pack installed\.$</Pattern>
1538+ </Resolution>
1539+ <Resolution>
1540+ <Content>プロジェクトが対象としている .NET Framework ({3}) の {2} で導入された型 {1} を使わないように {0} を修正してください。</Content>
1541+ <Pattern>^Assembly (.+?) is marked with an attribute that uses type (.+?)\. Because this type was introduced in (.+?), which was not included in the project's target framework, (.+?), your application may fail to run on systems without this service pack installed\.$</Pattern>
1542+ </Resolution>
1543+ <Resolution>
1544+ <Content>プロジェクトが対象としている .NET Framework ({3}) の {2} で導入されたアセンブリ {1} を参照しないように {0} を修正してください。</Content>
1545+ <Pattern>^Assembly (.+?) has a reference to assembly '(.+?)'\. Because this assembly was introduced in (.+?), which is higher than the project's target framework, (.+?), your application may fail to run on systems without this framework installed\.$</Pattern>
1546+ </Resolution>
1547+ </Rule>
1548+
1549+ <Rule CheckId="CA2102" Category="Microsoft.Security">
1550+ <Name>CLR に準拠しない例外もキャッチできる汎用例外ハンドラを定義する</Name>
1551+ <Resolution>
1552+ <Content>{0} が定義されているアセンブリに属性 [RuntimeCompatibility(WrapNonExceptionThrows = true)] を付加するか、例外ハンドラ catch (Exception) の代わりに汎用例外ハンドラを定義してください。全ての例外をキャッチすることを意図していないなら、キャッチする例外の型をより厳密に指定してください。</Content>
1553+ <Pattern>^(.+?) is defined in an assembly that is not marked RuntimeCompatibility\(WrapNonExceptionThrows = true\) and defines a catch\(Exception\) handler that is not matched with a generic catch clause \(catch\{\} in C\#, catch\(System::Object\*\)\{\} in mc\+\+\) for non-CLSCompliant exceptions\. Either mark the assembly as RuntimeCompatibility\(WrapNonExceptionThrows = true\), eliminate the catch\(Exception\) clause by catching a specific set of Exceptions or add a generic catch handler that duplicates the code contained within the catch\(Exception\) handler\.$</Pattern>
1554+ </Resolution>
1555+ </Rule>
1556+ <Rule CheckId="CA2103" Category="Microsoft.Security">
1557+ <Name>可変な情報を使用して強制セキュリティ確認要求を行わない</Name>
1558+ <Resolution>
1559+ <Content>型のメンバー {1} を {2} のコンストラクタに渡さないよう、{0} を修正してください。</Content>
1560+ <Pattern>^Review the following for a possible security vulnerability: In (.+?), the class member (.+?) is being passed to a (.+?) constructor\.$</Pattern>
1561+ </Resolution>
1562+ <Resolution>
1563+ <Content>{1} の引数 {0} を {2} のコンストラクタに渡さないでください。</Content>
1564+ <Pattern>^Review the following for a possible security vulnerability: Parameter (.+?) of (.+?) is being passed to a (.+?) constructor\.$</Pattern>
1565+ </Resolution>
1566+ <Resolution>
1567+ <Content>{1} の戻り値を {2} のコンストラクタに渡さないよう、{0} を修正してください。</Content>
1568+ <Pattern>^Review the following for a possible security vulnerability: In (.+?), the return value of a call to (.+?) is being passed to a (.+?) constructor\.$</Pattern>
1569+ </Resolution>
1570+ </Rule>
1571+ <Rule CheckId="CA2104" Category="Microsoft.Security">
1572+ <Name>変更可能な参照型フィールドを読み取り専用にしない</Name>
1573+ <Resolution>
1574+ <Content>フィールド {0} を読み取り専用として宣言しないでください。もしくは、このフィールドの型を変更不可能な参照型に変更してください。</Content>
1575+ <Pattern>^Remove the read-only designation from (.+?) or change the field to one that is an immutable reference type\. If the reference type (.+?) is, in fact, immutable, exclude this message\.$</Pattern>
1576+ </Resolution>
1577+ </Rule>
1578+ <Rule CheckId="CA2105" Category="Microsoft.Security">
1579+ <Name>配列型のフィールドを読み取り専用にしない</Name>
1580+ <Resolution>
1581+ <Content>フィールドの型を、厳密に型指定された、変更できないコレクション型に変更してください。もしくは、フィールドを private に変更し、このフィールドのクローンを返すメソッドを作成してください。</Content>
1582+ <Pattern>^Either replace (.+?) with a strongly typed collection that cannot be changed, or replace the public field with a method that returns a clone of a private array\.$</Pattern>
1583+ </Resolution>
1584+ </Rule>
1585+ <Rule CheckId="CA2106" Category="Microsoft.Security">
1586+ <Name>呼び出し元を盲目的に信用してセキュリティアサーションを行わない</Name>
1587+ <Resolution>
1588+ <Content>{0} にセキュリティ確認要求を追加してください。</Content>
1589+ <Pattern>^Consider adding a security demand to (.+?)\. This method is accessible from outside its assembly, and might therefore provide a way to circumvent security protection\.$</Pattern>
1590+ </Resolution>
1591+ <Resolution>
1592+ <Content>{0} にセキュリティ確認要求を追加してください (問題となるコールスタック : {1})。</Content>
1593+ <Pattern>^Consider adding a security demand to (.+?)\. The following call stack might expose a way to circumvent security protection: (.+?)$</Pattern>
1594+ </Resolution>
1595+ </Rule>
1596+ <Rule CheckId="CA2107" Category="Microsoft.Security">
1597+ <Name>Deny、PermitOnly セキュリティアクションを使わない</Name>
1598+ <Resolution>
1599+ <Content>{0} から Deny、PermitOnly セキュリティアクションを削除してください。</Content>
1600+ <Pattern>^(.+?) uses a permission Deny or PermitOnly\. Use of Deny or PermitOnly should be carefully reviewed\.$</Pattern>
1601+ </Resolution>
1602+ </Rule>
1603+ <Rule CheckId="CA2108" Category="Microsoft.Security">
1604+ <Name>値型を確認要求、リンク確認要求で保護しない</Name>
1605+ <Resolution>
1606+ <Content>{0} から確認要求、リンク確認要求を削除してください。</Content>
1607+ <Pattern>^Remove the demand or link demand from (.+?) because it will not prevent the struct from being instantiated\. Place the demand on a parameterized constructor instead and make sure that the initial state of the structure is detectably valid or invalid \(the struct will only be initialized with default values if the security demand is not satisfied\)\.$</Pattern>
1608+ </Resolution>
1609+ <Resolution>
1610+ <Content>{0} から確認要求、リンク確認要求を削除してください。どうしても確認要求、リンク確認要求を行う必要がある場合は、ソースコードを慎重にレビューし、{0} の呼び出し元がセキュリティ要求を満たさないためにインスタンスがデフォルトコンストラクタのみで初期化されたとしても、機密情報が公開されたり、インスタンスの不正使用ができないことを確認してください。</Content>
1611+ <Pattern>^The demand or link demand on (.+?) will not prevent the struct from being instantiated but it will only be initialized with default values if the security demand is not satisfied\. Make sure that the initial state of the structure is detectably valid or invalid\.$</Pattern>
1612+ </Resolution>
1613+ </Rule>
1614+ <Rule CheckId="CA2109" Category="Microsoft.Security">
1615+ <Name>イベントハンドラを外部に公開しない</Name>
1616+ <Resolution>
1617+ <Content>{0} を外部に公開しないでください。どうしても公開する必要がある場合は、ソースコードを慎重にレビューし、セキュリティ上の問題がないことを確認してください。</Content>
1618+ <Pattern>^Consider making (.+?) not externally visible or ensure that it is benign code\.$</Pattern>
1619+ </Resolution>
1620+ <Resolution>
1621+ <Content>{0} を外部に公開しないでください。</Content>
1622+ <Pattern>^Consider making (.+?) not externally visible\.$</Pattern>
1623+ </Resolution>
1624+ </Rule>
1625+ <Rule CheckId="CA2111" Category="Microsoft.Security">
1626+ <Name>ポインタを外部に公開しない</Name>
1627+ <Resolution>
1628+ <Content>{0} を private に変更してください。</Content>
1629+ <Pattern>^Make (.+?) private\.$</Pattern>
1630+ </Resolution>
1631+ </Rule>
1632+ <Rule CheckId="CA2112" Category="Microsoft.Security">
1633+ <Name>確認要求、リンク確認要求で’保護された型のフィールドを外部に公開しない</Name>
1634+ <Resolution>
1635+ <Content>フィールド {1} を private に変更し、代わりにプロパティを公開してください。</Content>
1636+ <Pattern>^(.+?) has a LinkDemand or Demand, and exposes the field (.+?)\. Fields cannot be protected by LinkDemands or Demands\. To remove this vulnerability, make the field private and expose a property that has security applied to it\.$</Pattern>
1637+ </Resolution>
1638+ </Rule>
1639+ <Rule CheckId="CA2114" Category="Microsoft.Security">
1640+ <Name>メソッドの宣言型セキュリティは、型の宣言型セキュリティのスーパーセットにする</Name>
1641+ <Resolution>
1642+ <Content>現在、型にのみ付加されているセキュリティチェック {0} を、メソッド {1} にも付加してください。</Content>
1643+ <Pattern>^Apply (.+?) security checks that currently exist at the type level only to method (.+?) as well\.$</Pattern>
1644+ </Resolution>
1645+ </Rule>
1646+ <Rule CheckId="CA2115" Category="Microsoft.Security">
1647+ <Name>アンマネージリソースを使用する際はファイナライザで GC.KeepAlive を呼び出す</Name>
1648+ <Resolution>
1649+ <Content>{0} メソッドの最後に GC.KeepAlive メソッドの呼び出しを追加してください。GC.KeepAlive メソッドの引数には this (VB.NET の場合は Me) を渡してください。</Content>
1650+ <Pattern>^Add a call to GC\.KeepAlive\(this\) at the end of method (.+?)\.$</Pattern>
1651+ </Resolution>
1652+ </Rule>
1653+ <Rule CheckId="CA2116" Category="Microsoft.Security">
1654+ <Name>部分信頼呼び出しを許可するメソッドから、部分信頼呼び出しを許可しないメソッドを呼び出さない</Name>
1655+ <Resolution>
1656+ <Content>部分信頼呼び出しを許可するメソッド {0} から、部分信頼呼び出しを許可していない {2} アセンブリのメソッド {1} を呼び出さないでください。</Content>
1657+ <Pattern>^The method (.+?) is defined in an assembly that has AllowPartiallyTrustedCallersAttribute and calls (.+?), which is defined in an assembly \((.+?)\) that does not\. Review the called methods to ensure they cannot be used in a destructive manner if called by malicious code\.$</Pattern>
1658+ </Resolution>
1659+ </Rule>
1660+ <Rule CheckId="CA2117" Category="Microsoft.Security">
1661+ <Name>部分信頼呼び出しを許可する型に、部分信頼呼び出しを許可しない型を継承させない</Name>
1662+ <Resolution>
1663+ <Content>{0} から AllowPartiallyTrustedCallers 属性を削除する、{1} で基底クラスの protected メンバーを公開しない、{0} の基底クラス {2} に AllowPartiallyTrustedCallers 属性を付加する、のいずれかの処置を行ってください。</Content>
1664+ <Pattern>^Do one of the following: 1\) Remove the AllowPartiallyTrustedCallersAttribute from (.+?)\. 2\) If the attribute is necessary, verify that (.+?) does not expose any protected members of inherited types\. 3\) Add AllowPartiallyTrustedCallersAttribute to the base type (.+?), if you can ensure that this will not have negative implications on security\.$</Pattern>
1665+ </Resolution>
1666+ </Rule>
1667+ <Rule CheckId="CA2118" Category="Microsoft.Security">
1668+ <Name>SuppressUnmanagedCodeSecurity 属性を使用しない</Name>
1669+ <Resolution>
1670+ <Content>{0} から SuppressUnmanagedCodeSecurity 属性を削除してください。もしくは、{0} を private に変更し、適切な権限を要求する public なラッパーメソッドを作成してください。</Content>
1671+ <Pattern>^Review declarative security for (.+?) and its callers for potential vulnerabilities\. This method is accessible from outside its assembly, and might therefore provide a way to circumvent security protection\. Consider removing SuppressUnmanagedCodeSecurity from the method or make it private and wrap it with a public method that demands a permission appropriate to the P/Invoke functionality and security risk\.$</Pattern>
1672+ </Resolution>
1673+ <Resolution>
1674+ <Content>{0} から SuppressUnmanagedCodeSecurity 属性を削除してください。</Content>
1675+ <Pattern>^Review declarative security for (.+?) and its callers for potential vulnerabilities\. The following call stack might expose a way to circumvent security protection: (.+?)$</Pattern>
1676+ </Resolution>
1677+ <Resolution>
1678+ <Content>{0} から SuppressUnmanagedCodeSecurity 属性を削除してください。</Content>
1679+ <Pattern>^Member (.+?) is marked with SuppressUnmanagedCodeSecurityAttribute\. Make sure this does not result in a security vulnerability\.$</Pattern>
1680+ </Resolution>
1681+ <Resolution>
1682+ <Content>{0} から SuppressUnmanagedCodeSecurity 属性を削除してください。どうしても属性を付けておく必要がある場合は、{0} を使うことによってセキュリティ上の脆弱性を招かないことを確認してください。</Content>
1683+ <Pattern>^Remove SuppressUnmanagedCodeSecurityAttribute from (.+?) or ensure its use does not result in a security vulnerability\.$</Pattern>
1684+ </Resolution>
1685+ </Rule>
1686+ <Rule CheckId="CA2119" Category="Microsoft.Security">
1687+ <Name>internal インターフェースの実装メソッドを、外部アセンブリからオーバーライドできないようにする</Name>
1688+ <Resolution>
1689+ <Content>型のシールやアクセシビリティの変更などにより、アセンブリ外の型が {1} を継承できないようにしてください。もしくは、{0} をオーバーライド不可能にしてください。</Content>
1690+ <Pattern>^(.+?) is an overridable method that satisfies a member on the private interface '(.+?)'\. Mark the method as final, implement it explicitly or seal its declaring type (.+?)\.$</Pattern>
1691+ </Resolution>
1692+ </Rule>
1693+ <Rule CheckId="CA2120" Category="Microsoft.Security">
1694+ <Name>デシリアライズ用コンストラクタをセキュリティ確認要求で保護する</Name>
1695+ <Resolution>
1696+ <Content>デシリアライズ用コンストラクタをセキュリティ確認要求 {0} で保護してください。</Content>
1697+ <Pattern>^Security demands were found on (.+?)\. Mark the serialization constructor for this type with the declarative form of the same demand\(s\)\.$</Pattern>
1698+ </Resolution>
1699+ </Rule>
1700+ <Rule CheckId="CA2121" Category="Microsoft.Security">
1701+ <Name>static コンストラクタは private にする</Name>
1702+ <Resolution>
1703+ <Content>'{0}' の static コンストラクタを private にしてください。</Content>
1704+ <Pattern>^Declare an explicit static constructor for '(.+?)'\.$</Pattern>
1705+ </Resolution>
1706+ </Rule>
1707+ <Rule CheckId="CA2122" Category="Microsoft.Security">
1708+ <Name>リンク確認要求で保護されたメンバーを間接的に公開しない</Name>
1709+ <Resolution>
1710+ <Content>{0} をセキュリティ確認要求で保護してください。保護できない場合は、以下のコールスタックを検証し、{1} の間接的な公開が、セキュリティ上の脆弱性を招かないことを確認してください : {3}</Content>
1711+ <Pattern>^(.+?) calls into (.+?) which has a LinkDemand\. By making this call, (.+?) is indirectly exposed to user code\. Review the following call stack that might expose a way to circumvent security protection: (.+?)$</Pattern>
1712+ </Resolution>
1713+ </Rule>
1714+ <Rule CheckId="CA2123" Category="Microsoft.Security">
1715+ <Name>オーバーライドメンバーは、オーバーライド元のメンバーと同じリンク確認要求で保護する</Name>
1716+ <Resolution>
1717+ <Content>{0} を、基底型のメンバー {1} と同じリンク確認要求で保護してください。</Content>
1718+ <Pattern>^The LinkDemands on override (.+?) do not exactly match the LinkDemands on base method (.+?)\. Add, remove, or modify LinkDemands where required\.$</Pattern>
1719+ </Resolution>
1720+ <Resolution>
1721+ <Content>{0} の基底型のメンバー {1} を、リンク確認要求 {2} で保護してください。それができない場合は、{0} からリンク確認要求を削除するか、確認要求に変更してください。</Content>
1722+ <Pattern>^Override (.+?) has the following LinkDemand that is not present on base method (.+?): (.+?)\. If possible, apply the same LinkDemand to the base method\. Otherwise, replace it with a full Demand or remove it entirely\.$</Pattern>
1723+ </Resolution>
1724+ <Resolution>
1725+ <Content>{0} を、基底型のメンバー {1} と同じリンク確認要求で保護してください。</Content>
1726+ <Pattern>^Add the following security attribute to (.+?) in order to match a LinkDemand on base method (.+?): (.+?)\.$</Pattern>
1727+ </Resolution>
1728+ <Resolution>
1729+ <Content>{0} を、基底型のメンバー {1} と同じリンク確認要求 {2} で保護してください。</Content>
1730+ <Pattern>^The LinkDemands on override (.+?) do not exactly match the following LinkDemands on base method (.+?): (.+?)\. Add, remove, or modify LinkDemands where required\.$</Pattern>
1731+ </Resolution>
1732+ </Rule>
1733+ <Rule CheckId="CA2124" Category="Microsoft.Security">
1734+ <Name>脆弱になりうる try-finally を try-catch でラップする</Name>
1735+ <Resolution>
1736+ <Content>{0} の try-finally を、キャッチした例外を単に再スローする try-catch でラップしてください。</Content>
1737+ <Pattern>^Wrap the finally clause in (.+?) that calls (.+?) in an outer try block with an associated catch that simply rethrows\.$</Pattern>
1738+ </Resolution>
1739+ </Rule>
1740+ <Rule CheckId="CA2126" Category="Microsoft.Security">
1741+ <Name>リンク確認要求で保護された型のオーバーライド可能なメソッドは、継承確認要求で保護する</Name>
1742+ <Resolution>
1743+ <Content>{0}、もしくは {0} で定義されているオーバーライド可能なメソッドを、継承確認要求で保護してください。</Content>
1744+ <Pattern>^(.+?) has one or more overridable methods with link demands that are not matched by an inheritance demand\. Apply appropriate inheritance demands to the type\.$</Pattern>
1745+ </Resolution>
1746+ <Resolution>
1747+ <Content>{0}、もしくは {0} で定義されているオーバーライド可能なメソッドを、継承確認要求 {1} で保護してください。</Content>
1748+ <Pattern>^(.+?) has one or more overridable methods with link demands that are not matched by an inheritance demand\. Apply the following inheritance demands to the type: (.+?)$</Pattern>
1749+ </Resolution>
1750+ </Rule>
1751+ <Rule CheckId="CA2127" Category="Microsoft.Security">
1752+ <Name>セキュリティ透過なアセンブリには、セキュリティクリティカルなコードを含めない</Name>
1753+ <Resolution>
1754+ <Content>{0} をセキュリティクリティカルな別のアセンブリに移動してください。もしくは、アセンブリ {0} をセキュリティクリティカルにしてください。</Content>
1755+ <Pattern>^Refactor (.+?) into an independent SecurityCritical assembly or mark assembly (.+?) as SecurityCritical\.$</Pattern>
1756+ </Resolution>
1757+ </Rule>
1758+ <Rule CheckId="CA2128" Category="Microsoft.Security">
1759+ <Name>セキュリティ透過なコードでは、セキュリティ確認要求をアサートしない</Name>
1760+ <Resolution>
1761+ <Content>{0} からセキュリティ確認要求のアサートを全て削除してください。もしくは、SecurityCritical 属性を付加してください。</Content>
1762+ <Pattern>^Remove all asserts from (.+?) or mark the code as SecurityCritical\.$</Pattern>
1763+ </Resolution>
1764+ </Rule>
1765+ <Rule CheckId="CA2129" Category="Microsoft.Security">
1766+ <Name>セキュリティ透過なコードから、セキュリティクリティカルな非パブリックメンバーを参照しない</Name>
1767+ <Resolution>
1768+ <Content>変数 {1} への参照を変更するか削除してください。もしくは {2} に SecurityCritial 属性を付加してください。もしくは {3} に SecurityTreatAsSafe 属性を付加してください。</Content>
1769+ <Pattern>^(.+?), a SecurityTransparent method has a variable reference to (.+?), a non-public SecurityCritical type\. Remove or replace this variable, mark (.+?) as SecurityCritical, or decorate (.+?) with SecurityTreatAsSafe\.$</Pattern>
1770+ </Resolution>
1771+ <Resolution>
1772+ <Content>引数 {1} への参照を変更するか削除してください。もしくは {2} に SecurityCritial 属性を付加してください。もしくは {3} に SecurityTreatAsSafe 属性を付加してください。</Content>
1773+ <Pattern>^(.+?), a SecurityTransparent method contains a parameter of (.+?), a non-public type\. Remove or replace this parameter, mark (.+?) as SecurityCritical, or decorate (.+?) with SecurityTreatAsSafe\.$</Pattern>
1774+ </Resolution>
1775+ <Resolution>
1776+ <Content>戻り値の型を変更してください。もしくは {2} に SecurityCritial 属性を付加してください。もしくは {3} に SecurityTreatAsSafe 属性を付加してください。</Content>
1777+ <Pattern>^(.+?), a SecurityTransparent method returns (.+?), a non-public SecurityCritical type\. Change the return type, mark (.+?) as SecurityCritical, or decorate (.+?) with SecurityTreatAsSafe\.$</Pattern>
1778+ </Resolution>
1779+ <Resolution>
1780+ <Content>メソッド {1} の呼び出しを置き換えるか削除してください。もしくは {2} に SecurityCritial 属性を付加してください。もしくは {3} に SecurityTreatAsSafe 属性を付加してください。</Content>
1781+ <Pattern>^(.+?), a SecurityTransparent method, references (.+?), a non-public SecurityCritical method\. Remove or replace this call, mark (.+?) as SecurityCritical, or decorate (.+?) with SecurityTreatAsSafe\.$</Pattern>
1782+ </Resolution>
1783+ <Resolution>
1784+ <Content>フィールド {1} への参照を変更するか削除してください。もしくは {2} に SecurityCritial 属性を付加してください。もしくは {3} に SecurityTreatAsSafe 属性を付加してください。</Content>
1785+ <Pattern>^(.+?), a SecurityTransparent method, accesses (.+?), a non-public SecurityCritical field\. Remove or replace this field access, mark (.+?) as SecurityCritical, or decorate (.+?) with SecurityTreatAsSafe\.$</Pattern>
1786+ </Resolution>
1787+ </Rule>
1788+
1789+ <Rule CheckId="CA1801" Category="Microsoft.Usage">
1790+ <Name>不要な引数を受け取らない</Name>
1791+ <Resolution>
1792+ <Content>{1} メソッドの引数 {0} を削除してください。この引数は一度も使われていません。</Content>
1793+ <Pattern>^Parameter (.+?) of (.+?) is never used\. Remove the parameter or use it in the method body\.$</Pattern>
1794+ </Resolution>
1795+ </Rule>
1796+ <Rule CheckId="CA1806" Category="Microsoft.Usage">
1797+ <Name>メソッドの戻り値を無視しない</Name>
1798+ <Resolution>
1799+ <Content>{0} で {1} のインスタンスを作成していますが一度も使われていません。不要なインスタンスならインスタンス生成コードを削除してください。</Content>
1800+ <Pattern>^(.+?) creates a new instance of (.+?) which is never used\. Pass the instance as an argument to another method, assign the instance to a variable, or remove the object creation if it is unnecessary\.$</Pattern>
1801+ </Resolution>
1802+ <Resolution>
1803+ <Content>{0} で {1} を呼び出して返された文字列インスタンスを使用していません。不要なインスタンスなら {1} を削除してください。</Content>
1804+ <Pattern>^(.+?) calls (.+?) but does not use the new string instance that the method returns\. Pass the instance as an argument to another method, assign the instance to a variable, or remove the call if it is unnecessary\.$</Pattern>
1805+ </Resolution>
1806+ <Resolution>
1807+ <Content>{0} で {1} を呼び出して返された HRESULT もしくはエラーコードを使用して適切なエラー処理を行ってください。HRESULT やエラーコードを無視すると、予期せぬ動作を引き起こしたり、リソース不足を引き起こしたりする可能性があります。</Content>
1808+ <Pattern>^(.+?) calls (.+?) but does not use the HRESULT or error code that the method returns\. This could lead to unexpected behavior in error conditions or low-resource situations\. Use the result in a conditional statement, assign the result to a variable, or pass it as an argument to another method\.$</Pattern>
1809+ </Resolution>
1810+ <Resolution>
1811+ <Content>{0} で {1} を呼び出した後、変換が成功したかどうかを確認してください。</Content>
1812+ <Pattern>^(.+?) calls (.+?) but does not explicitly check whether the conversion succeeded\. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails\.$</Pattern>
1813+ </Resolution>
1814+ </Rule>
1815+ <Rule CheckId="CA2200" Category="Microsoft.Usage">
1816+ <Name>スタックトレースを保持した例外を再スローする</Name>
1817+ <Resolution>
1818+ <Content>{0} で例外を再スローする際は引数なしの 'throw' を使用し、スタックトレースを保持した例外をスローしてください。</Content>
1819+ <Pattern>^(.+?) rethrows a caught exception and specifies it explicitly as an argument\. Use 'throw' without an argument instead, in order to preserve the stack location where the exception was initially raised\.$</Pattern>
1820+ </Resolution>
1821+ </Rule>
1822+ <Rule CheckId="CA2201" Category="Microsoft.Usage">
1823+ <Name>汎用的な例外や .NET ランタイム用の例外をスローしない</Name>
1824+ <Resolution>
1825+ <Content>{0} でスローする例外を {1} ではなくより限定的な例外を表す型に変更してください。 </Content>
1826+ <Pattern>^(.+?) creates an exception of type (.+?), an exception type that is not sufficiently specific and should never be raised by user code\. If this exception instance might be thrown, use a different exception type\.$</Pattern>
1827+ </Resolution>
1828+ <Resolution>
1829+ <Content>{0} でスローする例外を .NET ライタイム用の例外 {1} 以外の型に変更してください。</Content>
1830+ <Pattern>^(.+?) creates an exception of type (.+?), an exception type that is reserved by the runtime and should never be raised by managed code\. If this exception instance might be thrown, use a different exception type\.$</Pattern>
1831+ </Resolution>
1832+ </Rule>
1833+ <Rule CheckId="CA2205" Category="Microsoft.Usage">
1834+ <Name>Win32 API よりもマネージド API を優先的に使用する</Name>
1835+ <Resolution>
1836+ <Content>{0} の代わりに同等の機能を持つマネージド API '{1}' を使用してください。</Content>
1837+ <Pattern>^Remove the declaration for (.+?)\. Callers should use the following managed alternative: (.+?)$</Pattern>
1838+ </Resolution>
1839+ </Rule>
1840+ <Rule CheckId="CA2207" Category="Microsoft.Usage">
1841+ <Name>値型の static フィールドはインラインで初期化する</Name>
1842+ <Resolution>
1843+ <Content>{0} の全ての static フィールドをインラインで初期化するように変更し、static コンストラクタを削除してください。</Content>
1844+ <Pattern>^Initialize all static fields in (.+?) when those fields are declared and remove the explicit static constructor\.$</Pattern>
1845+ </Resolution>
1846+ </Rule>
1847+ <Rule CheckId="CA2208" Category="Microsoft.Usage">
1848+ <Name>ArgumentException のコンストラクタには正しい引数を指定する</Name>
1849+ <Resolution>
1850+ <Content>{0} のコンストラクタには例外メッセージと引数名を指定してください。</Content>
1851+ <Pattern>^Call the (.+?) constructor that contains a message and/or paramName parameter\.$</Pattern>
1852+ </Resolution>
1853+ <Resolution>
1854+ <Content>メソッド {0} で {3} のコンストラクタを呼び出す際、引数 {2} には例外の詳細情報を指定してください。</Content>
1855+ <Pattern>^Method (.+?) passes parameter name '(.+?)' as the (.+?) argument to a (.+?) constructor\. Replace this argument with a descriptive message and pass the parameter name in the correct position\.$</Pattern>
1856+ </Resolution>
1857+ <Resolution>
1858+ <Content>メソッド {0} で {3} のコンストラクタを呼び出す際、引数 {2} には不正な値が指定された {0} メソッドの引数の名前を指定してください。</Content>
1859+ <Pattern>^Method (.+?) passes '(.+?)' as the (.+?) argument to a (.+?) constructor\. Replace this argument with one of the method's parameter names\. Note that the provided parameter name should have the exact casing as declared on the method\.$</Pattern>
1860+ </Resolution>
1861+ </Rule>
1862+ <Rule CheckId="CA2211" Category="Microsoft.Usage">
1863+ <Name>static フィールドは外部から変更不可能にする</Name>
1864+ <Resolution>
1865+ <Content>{0} を外部から変更不可能にしてください。</Content>
1866+ <Pattern>^Consider making (.+?) non-public or a constant\.$</Pattern>
1867+ </Resolution>
1868+ </Rule>
1869+ <Rule CheckId="CA2212" Category="Microsoft.Usage">
1870+ <Name>ServicedComponent のメソッドを Web メソッドとして公開しない</Name>
1871+ <Resolution>
1872+ <Content>{0} の WebMethod 属性を削除してください。</Content>
1873+ <Pattern>^(.+?) has the WebMethod attribute applied to it and its declaring type extends ServicedComponent\. This is not a supported scenario\.$</Pattern>
1874+ </Resolution>
1875+ </Rule>
1876+ <Rule CheckId="CA2213" Category="Microsoft.Usage">
1877+ <Name>IDisposable 型のフィールドは確実に破棄する</Name>
1878+ <Resolution>
1879+ <Content>{0} の Dispose メソッドでフィールド {1} の Dispose メソッドを呼び出してください。</Content>
1880+ <Pattern>^(.+?) contains field (.+?) that is of IDisposable type: (.+?)\. Change the Dispose method on (.+?) to call Dispose or Close on this field\.$</Pattern>
1881+ </Resolution>
1882+ </Rule>
1883+ <Rule CheckId="CA2214" Category="Microsoft.Usage">
1884+ <Name>コンストラクタではオーバーライド可能なメソッドを呼び出さない</Name>
1885+ <Resolution>
1886+ <Content>コンストラクタ {0} から virtual メソッドを呼び出さないようにしてください。</Content>
1887+ <Pattern>^(.+?) contains a call chain that results in a call to a virtual method defined by the class\. Review the following call stack for unintended consequences: (.+?)$</Pattern>
1888+ </Resolution>
1889+ </Rule>
1890+ <Rule CheckId="CA2216" Category="Microsoft.Usage">
1891+ <Name>IDisposable を実装する場合はファイナライザを定義する</Name>
1892+ <Resolution>
1893+ <Content>{0} にファイナライザ(C# の場合はデストラクタ)を定義してください。</Content>
1894+ <Pattern>^Implement a finalizer or destructor on (.+?)\.$</Pattern>
1895+ </Resolution>
1896+ </Rule>
1897+ <Rule CheckId="CA2217" Category="Microsoft.Usage">
1898+ <Name>ビットフラグとして使えない列挙型には Flags 属性を付けない</Name>
1899+ <Resolution>
1900+ <Content>{0} から Flags 属性を削除してください。もしくはビットフラグとして機能するように {1} を値として持つメンバーを追加してください。</Content>
1901+ <Pattern>^(.+?) is marked with FlagsAttribute but a discrete member cannot be found for every settable bit that is used across the range of enum values\. Remove FlagsAttribute from the type or define new members for the following \(currently missing\) values: (.+?)$</Pattern>
1902+ </Resolution>
1903+ </Rule>
1904+ <Rule CheckId="CA2218" Category="Microsoft.Usage">
1905+ <Name>Equals メソッドをオーバーライドする時は GetHashCode メソッドもオーバーライドする</Name>
1906+ <Resolution>
1907+ <Content>{0} で GetHashCode メソッドをオーバーライドしてください。</Content>
1908+ <Pattern>^Since (.+?) redefines Equals, it should also redefine GetHashCode\.$</Pattern>
1909+ </Resolution>
1910+ </Rule>
1911+ <Rule CheckId="CA2219" Category="Microsoft.Usage">
1912+ <Name>例外処理ブロックで例外を発生させない</Name>
1913+ <Resolution>
1914+ <Content>finally 句で例外を発生させないように {0} を修正してください。</Content>
1915+ <Pattern>^Modify member (.+?) so that it does not raise an exception from within a finally clause\. When an exception is raised from within a finally clause, the new exception hides the active exception, if present, making the original error hard to detect and debug\.$</Pattern>
1916+ </Resolution>
1917+ <Resolution>
1918+ <Content>filter 句で例外を発生させないように {0} を修正してください。</Content>
1919+ <Pattern>^Modify member (.+?) so that it does not raise an exception from within a filter clause\. When an exception is raised from within a filter clause, the runtime silently catches the exception, causing the filter to evaluate to false\. This makes it hard to detect and debug errors in the filter's logic\.$</Pattern>
1920+ </Resolution>
1921+ <Resolution>
1922+ <Content>fault 句で例外を発生させないように {0} を修正してください。</Content>
1923+ <Pattern>^Modify member (.+?) so that it does not raise an exception from within a fault clause\. When an exception is raised from within a fault clause, the new exception hides the active exception, making the original error hard to detect and debug\.$</Pattern>
1924+ </Resolution>
1925+ </Rule>
1926+ <Rule CheckId="CA2220" Category="Microsoft.Usage">
1927+ <Name>ファイナライザから基底クラスのファイナライザを呼び出す</Name>
1928+ <Resolution>
1929+ <Content>基底クラスの Finalize メソッドを呼び出すように {0} を修正してください。</Content>
1930+ <Pattern>^Modify (.+?) so that it calls its base class' finalize method\.$</Pattern>
1931+ </Resolution>
1932+ </Rule>
1933+ <Rule CheckId="CA2221" Category="Microsoft.Usage">
1934+ <Name>ファイナライザは protected スコープとする</Name>
1935+ <Resolution>
1936+ <Content>{0} のファイナライザを protected に変更してください。</Content>
1937+ <Pattern>^Mark the finalizer for type (.+?) as protected\.$</Pattern>
1938+ </Resolution>
1939+ </Rule>
1940+ <Rule CheckId="CA2222" Category="Microsoft.Usage">
1941+ <Name>基底型のメンバーを private メンバーで隠蔽しない</Name>
1942+ <Resolution>
1943+ <Content>{0} のアクセシビリティを private 以外にするか、{0} が定義されている型を継承できないようにしてください。</Content>
1944+ <Pattern>^Make (.+?) non-private, mark it as final, or seal its declaring type\. This method was originally defined in base class (.+?)\.$</Pattern>
1945+ </Resolution>
1946+ </Rule>
1947+ <Rule CheckId="CA2223" Category="Microsoft.Usage">
1948+ <Name>戻り値の型以外に違いのないメンバーを作らない</Name>
1949+ <Resolution>
1950+ <Content>{0} を変更し、類似のメンバーに対して戻り値の型以外の違いを持たせてください。</Content>
1951+ <Pattern>^'(.+?)' should differ from other members by more than its return type\.$</Pattern>
1952+ </Resolution>
1953+ </Rule>
1954+ <Rule CheckId="CA2224" Category="Microsoft.Usage">
1955+ <Name>等値演算子をオーバーロードする場合は Equals メソッドをオーバーライドする</Name>
1956+ <Resolution>
1957+ <Content>{0} で Equals メソッドをオーバーライドしてください。</Content>
1958+ <Pattern>^Override Equals on (.+?)\.$</Pattern>
1959+ </Resolution>
1960+ </Rule>
1961+ <Rule CheckId="CA2225" Category="Microsoft.Usage">
1962+ <Name>演算子をオーバーロードする場合は代替メソッドも定義する</Name>
1963+ <Resolution>
1964+ <Content>{1} 演算子の代替メソッドとして {0} を定義してください。</Content>
1965+ <Pattern>^Provide a method named '(.+?)' as a friendly alternate for operator (.+?)\.$</Pattern>
1966+ </Resolution>
1967+ <Resolution>
1968+ <Content>{1} 演算子の代替プロパティとして {0} を定義してください。</Content>
1969+ <Pattern>^Provide a property named '(.+?)' as a friendly alternate for operator (.+?)\.$</Pattern>
1970+ </Resolution>
1971+ <Resolution>
1972+ <Content>{2} 演算子の代替メソッドとして {0} もしくは {1} を定義してください。</Content>
1973+ <Pattern>^Provide a method named '(.+?)' or '(.+?)' as an alternate for operator (.+?)\.$</Pattern>
1974+ </Resolution>
1975+ <Resolution>
1976+ <Content>{1} 演算子の代替メソッドとして外部から利用できるよう、{0} を public に変更してください。</Content>
1977+ <Pattern>^Mark (.+?) as public because it is a friendly alternate for operator (.+?)\.$</Pattern>
1978+ </Resolution>
1979+ </Rule>
1980+ <Rule CheckId="CA2226" Category="Microsoft.Usage">
1981+ <Name>等値演算子、非等値演算子のどちらか一方だけをオーバーロードしない</Name>
1982+ <Resolution>
1983+ <Content>{1} をオーバーロードする場合は、同時に {2} もオーバーロードしてください。</Content>
1984+ <Pattern>^Since '(.+?)' redefines operator '(.+?)', it should also redefine operator '(.+?)'\.$</Pattern>
1985+ </Resolution>
1986+ </Rule>
1987+ <Rule CheckId="CA2227" Category="Microsoft.Usage">
1988+ <Name>コレクション型のプロパティは読み取り専用とする</Name>
1989+ <Resolution>
1990+ <Content>{0} の set アクセサを削除して読み取り専用にしてください。</Content>
1991+ <Pattern>^Change (.+?) to be read-only by removing the property setter\.$</Pattern>
1992+ </Resolution>
1993+ </Rule>
1994+ <Rule CheckId="CA2228" Category="Microsoft.Usage">
1995+ <Name>現在サポートされていない .NET フレームワーク用にビルドしたリソースを使用しない</Name>
1996+ <Resolution>
1997+ <Content>リソースファイル {0} を現在サポートされている .NET のバージョン用にビルドしてください。</Content>
1998+ <Pattern>^Rebuild resource file (.+?) with a released version of \.NET\. The '(.+?)' key specified an unrecognized version '(.+?)'\. The version found in the current mscorlib is '(.+?)'\.$</Pattern>
1999+ </Resolution>
2000+ </Rule>
2001+ <Rule CheckId="CA2229" Category="Microsoft.Usage">
2002+ <Name>シリアライズ用コンストラクタを実装する。</Name>
2003+ <Resolution>
2004+ <Content>{0} に次に示すシグネチャのコンストラクタを追加してください : 'protected {1}(SerializationInfo info, StreamingContext context)'。</Content>
2005+ <Pattern>^Add a constructor to (.+?) with the following signature: 'protected (.+?)\(SerializationInfo info, StreamingContext context\)'\.$</Pattern>
2006+ </Resolution>
2007+ <Resolution>
2008+ <Content>{0} のシリアライズ用コンストラクタのアクセシビリティを protected に変更してください。</Content>
2009+ <Pattern>^Declare the serialization constructor of (.+?), an unsealed type, as protected\.$</Pattern>
2010+ </Resolution>
2011+ <Resolution>
2012+ <Content>{0} のシリアライズ用コンストラクタのアクセシビリティを private に変更してください。</Content>
2013+ <Pattern>^Declare the serialization constructor of (.+?), a sealed type, as private\.$</Pattern>
2014+ </Resolution>
2015+ </Rule>
2016+ <Rule CheckId="CA2230" Category="Microsoft.Usage">
2017+ <Name>可変長引数を受け取る場合は params や ParamArray を使用する</Name>
2018+ <Resolution>
2019+ <Content>{0} で varargs の代わりに 'params' (C# の場合) もしくは 'ParamArray' 'Visual Basic .NET、C++ の場合) を使用してください。</Content>
2020+ <Pattern>^Change (.+?) to use parameter arrays instead of varargs\. For C#, use 'params'\. For Visual Basic \.NET and C\+\+, use 'ParamArray'\.$</Pattern>
2021+ </Resolution>
2022+ </Rule>
2023+ <Rule CheckId="CA2231" Category="Microsoft.Usage">
2024+ <Name>値型で Equals メソッドをオーバーライドする場合は等値演算子もオーバーロードする</Name>
2025+ <Resolution>
2026+ <Content>{0} で等値演算子をオーバーロードしてください。</Content>
2027+ <Pattern>^Because (.+?) is a value type that overrides ValueType\.Equals, it should also overload the equality and inequality operators \(== and !=\)\.$</Pattern>
2028+ </Resolution>
2029+ </Rule>
2030+ <Rule CheckId="CA2232" Category="Microsoft.Usage">
2031+ <Name>Windows フォームアプリケーションのエントリポイントには STAThread 属性を付加する</Name>
2032+ <Resolution>
2033+ <Content>アセンブリ {1} のエントリポイントメソッド {0} にSTAThread 属性を付加してください。</Content>
2034+ <Pattern>^Mark the entry point method (.+?) in assembly (.+?) with an STAThreadAttribute\.$</Pattern>
2035+ </Resolution>
2036+ </Rule>
2037+ <Rule CheckId="CA2233" Category="Microsoft.Usage">
2038+ <Name>算術演算で桁あふれを発生させない</Name>
2039+ <Resolution>
2040+ <Content>{1} の算術演算 {0} で桁あふれが発生しないようにしてください。</Content>
2041+ <Pattern>^Correct the potential overflow in the operation '(.+?)' in (.+?)\.$</Pattern>
2042+ </Resolution>
2043+ </Rule>
2044+ <Rule CheckId="CA2234" Category="Microsoft.Usage">
2045+ <Name>引数で URI を受け取る場合は文字列ではなく System.Uri オブジェクトを受け取る</Name>
2046+ <Resolution>
2047+ <Content>{2} の代わりに {1} を呼び出すように {0} を修正してください。</Content>
2048+ <Pattern>^Modify (.+?) to call (.+?) instead of (.+?)\.$</Pattern>
2049+ </Resolution>
2050+ </Rule>
2051+ <Rule CheckId="CA2235" Category="Microsoft.Usage">
2052+ <Name>シリアライズ可能な型で宣言されているシリアライズ不可能なフィールドには NonSerialized 属性を付加する</Name>
2053+ <Resolution>
2054+ <Content>{1} のフィールド {0} に NonSerialized 属性を付加してください。</Content>
2055+ <Pattern>^Field (.+?) is a member of type (.+?), which is serializable, but is of type (.+?), which is not serializable\. Add the NonSerializedAttribute to (.+?)\.$</Pattern>
2056+ </Resolution>
2057+ </Rule>
2058+ <Rule CheckId="CA2236" Category="Microsoft.Usage">
2059+ <Name>シリアライズ可能な型では基底型で定義されているシリアライズ/デシリアライズ処理も実行する</Name>
2060+ <Resolution>
2061+ <Content>基底クラスで定義されている処理も呼び出すように {0} を修正してください。</Content>
2062+ <Pattern>^Method (.+?) should be modified to call its base class implementation\.$</Pattern>
2063+ </Resolution>
2064+ </Rule>
2065+ <Rule CheckId="CA2237" Category="Microsoft.Usage">
2066+ <Name>ISerializble を実装する型には Seralizable 属性を付加する</Name>
2067+ <Resolution>
2068+ <Content>{0} に Serializable 属性を付加してください。</Content>
2069+ <Pattern>^Add \[Serializable\] to (.+?) as this type implements ISerializable\.$</Pattern>
2070+ </Resolution>
2071+ </Rule>
2072+ <Rule CheckId="CA2238" Category="Microsoft.Usage">
2073+ <Name>シリアライズ/デシリアライズ処理用メソッドを適切に実装する</Name>
2074+ <Resolution>
2075+ <Content>{0} のアクセシビリティを private に変更してください。</Content>
2076+ <Pattern>^Because (.+?) is marked with OnSerializing, OnSerialized, OnDeserializing, or OnDeserialized, change its accessibility to private\.$</Pattern>
2077+ </Resolution>
2078+ <Resolution>
2079+ <Content>{0} は何も return しないようにしてください。C# で書かれている場合は戻り値の型を void に変更してください。Visual Basic で書かれている場合は Sub に修正してください。</Content>
2080+ <Pattern>^Because (.+?) is marked with OnSerializing, OnSerialized, OnDeserializing, or OnDeserialized, change its return type from (.+?) to void \(Sub in Visual Basic\)\.$</Pattern>
2081+ </Resolution>
2082+ <Resolution>
2083+ <Content>System.Runtime.Srialization.StreamingContext 型の引数を 1 つだけ受け取るように {0} を修正してください。</Content>
2084+ <Pattern>^Because (.+?) is marked with OnSerializing, OnSerialized, OnDeserializing, or OnDeserialized, change its signature so that it takes a single parameter of type 'System\.Runtime\.Serialization\.StreamingContext'\.$</Pattern>
2085+ </Resolution>
2086+ <Resolution>
2087+ <Content>{0} を非ジェネリックに修正してください。</Content>
2088+ <Pattern>^Because (.+?) is marked with OnSerializing, OnSerialized, OnDeserializing, or OnDeserialized, change its signature so that it is no longer generic\.$</Pattern>
2089+ </Resolution>
2090+ <Resolution>
2091+ <Content>{0} をインスタンスメソッドに変更してください。</Content>
2092+ <Pattern>^Because (.+?) is marked with OnSerializing, OnSerialized, OnDeserializing, or OnDeserialized, change it from static \(Shared in Visual Basic\) to an instance method\.$</Pattern>
2093+ </Resolution>
2094+ </Rule>
2095+ <Rule CheckId="CA2239" Category="Microsoft.Usage">
2096+ <Name>オプショナルフィールド用のデシリアライズメソッドを実装する</Name>
2097+ <Resolution>
2098+ <Content>{0} に OnDeserialized 属性を付加したデシリアライズ用メソッドを追加してください。</Content>
2099+ <Pattern>^Add a 'private void OnDeserialized\(StreamingContext\)' method to type (.+?) and attribute it with the System\.Runtime\.Serialization\.OnDeserializedAttribute\.$</Pattern>
2100+ </Resolution>
2101+ <Resolution>
2102+ <Content>{0} に OnDeserializing 属性を付加したデシリアライズ用メソッドを追加してください。</Content>
2103+ <Pattern>^Add a 'private void OnDeserializing\(StreamingContext\)' method to type (.+?) and attribute it with the System\.Runtime\.Serialization\.OnDeserializingAttribute\.$</Pattern>
2104+ </Resolution>
2105+ </Rule>
2106+ <Rule CheckId="CA2240" Category="Microsoft.Usage">
2107+ <Name>ISerializable を適切に実装する</Name>
2108+ <Resolution>
2109+ <Content>{0} では基底型の GetObjectData メソッドをオーバーライドしてください。</Content>
2110+ <Pattern>^Add an implementation of GetObjectData to type (.+?)\.$</Pattern>
2111+ </Resolution>
2112+ <Resolution>
2113+ <Content>派生クラスからアクセスできるように {0} の GetObjectData メソッドのアクセシビリティを変更してください。</Content>
2114+ <Pattern>^Increase the accessibility of (.+?)\.GetObjectData so that it is visible to derived types\.$</Pattern>
2115+ </Resolution>
2116+ <Resolution>
2117+ <Content>{0} の GetObjectData メソッドをオーバーライド可能にしてください。</Content>
2118+ <Pattern>^Make (.+?)\.GetObjectData virtual and overridable\.$</Pattern>
2119+ </Resolution>
2120+ </Rule>
2121+ <Rule CheckId="CA2242" Category="Microsoft.Usage">
2122+ <Name>NaN との等値比較を行わない</Name>
2123+ <Resolution>
2124+ <Content>NaN との等値比較を行わず、代わりに Single.IsNaN メソッド、もしくは Double.IsNaN メソッドを使用するように {0} を修正してください。</Content>
2125+ <Pattern>^Because direct comparisons to 'Single\.NaN' or 'Double\.NaN' will always return true for inequality and false for all other comparisons, replace the comparison in (.+?) with a call to 'Single\.IsNaN' or 'Double\.IsNaN'\.$</Pattern>
2126+ </Resolution>
2127+ </Rule>
2128+ <Rule CheckId="CA2243" Category="Microsoft.Usage">
2129+ <Name>属性には適切なフォーマットの文字列リテラルを指定する</Name>
2130+ <Resolution>
2131+ <Content>{0} を {2} として正しくパースできるフォーマットに変更してください。</Content>
2132+ <Pattern>^Change the value of argument '(.+?)', which is currently "(.+?)", to something that can be correctly parsed as (.+?)\.$</Pattern>
2133+ </Resolution>
2134+ </Rule>
2135+ <Rule CheckId="CA1816" Category="Microsoft.Usage">
2136+ <Name>GC.SuppressFinalize を適切に使用する </Name>
2137+ <Resolution>
2138+ <Content>{1} を呼び出すように {0} を修正してください。</Content>
2139+ <Pattern>^Change (.+?) to call (.+?)\. This will prevent unnecessary finalization of the object once it has been disposed and it has fallen out of scope\.$</Pattern>
2140+ </Resolution>
2141+ <Resolution>
2142+ <Content>{1} を呼び出す際に自分自身のインスタンスを渡すように {0} を修正してください。</Content>
2143+ <Pattern>^(.+?) calls (.+?) on something other than itself\. Change the call site to pass 'this' \('Me' in Visual Basic\) instead\.$</Pattern>
2144+ </Resolution>
2145+ <Resolution>
2146+ <Content>IDisposable.Dispose 以外のメソッドからは {1} を呼び出さないでください。</Content>
2147+ <Pattern>^(.+?) calls (.+?), a method that is typically only called within an implementation of 'IDisposable\.Dispose'\. Refer to the IDisposable pattern for more information\.$</Pattern>
2148+ </Resolution>
2149+ </Rule>
2150+</Rules>
\ No newline at end of file
--- drfx/trunk/src/Core/Translation/TranslationRule.cs (revision 181)
+++ drfx/trunk/src/Core/Translation/TranslationRule.cs (nonexistent)
@@ -1,118 +0,0 @@
1-/*
2- * DrFx - FxCop Report Translator and Visualizer.
3- * Copyright (C) 2010 Sasa Yuan
4- *
5- * This program is free software: you can redistribute it and/or modify
6- * it under the terms of the GNU General Public License as published by
7- * the Free Software Foundation, either version 3 of the License, or
8- * (at your option) any later version.
9- *
10- * This program is distributed in the hope that it will be useful,
11- * but WITHOUT ANY WARRANTY; without even the implied warranty of
12- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13- * GNU General Public License for more details.
14- *
15- * You should have received a copy of the GNU General Public License
16- * along with this program. If not, see <http://www.gnu.org/licenses/>.
17- */
18-
19-
20-
21-using System;
22-using System.Collections.Generic;
23-using System.Collections.ObjectModel;
24-using System.Linq;
25-using System.IO;
26-using System.Xml;
27-
28-namespace Sasa.QualityTools.DrFx.Core.Translation
29-{
30- /// <summary>
31- /// 翻訳ルールを表します。
32- /// </summary>
33- public class TranslationRule
34- {
35- /// <summary>
36- /// 解決方法を表すメッセージのコレクション。
37- /// </summary>
38- private List<Resolution> resolutions;
39-
40-
41-
42- /// <summary>
43- /// FxCop ルールのチェック ID。
44- /// </summary>
45- public string CheckId { get; private set; }
46-
47- /// <summary>
48- /// FxCop ルールのカテゴリ。
49- /// </summary>
50- public string Category { get; private set; }
51-
52- /// <summary>
53- /// FxCop ルール名。
54- /// </summary>
55- public string Name { get; private set; }
56-
57- /// <summary>
58- /// ルール違反の解決方法を表すオブジェクトのコレクション。
59- /// </summary>
60- public IList<Resolution> Resolutions
61- {
62- get
63- {
64- return this.resolutions;
65- }
66- }
67-
68-
69-
70- /// <summary>
71- /// 新しいインスタンスを初期化します。
72- /// </summary>
73- private TranslationRule()
74- {
75- this.resolutions = new List<Resolution>();
76- }
77-
78-
79-
80- /// <summary>
81- /// 翻訳ルールコンテンツを解析し、翻訳ルールコレクションを作成します。
82- /// </summary>
83- /// <param name="content">翻訳ルールコンテンツ。</param>
84- /// <returns>翻訳ルールコレクション。</returns>
85- public static IEnumerable<TranslationRule> Parse(string content)
86- {
87- List<TranslationRule> rules = new List<TranslationRule>();
88- XmlDocument doc = new XmlDocument();
89- doc.LoadXml(content);
90- foreach (XmlNode node in doc.SelectNodes("/Rules/Rule"))
91- {
92- TranslationRule rule = new TranslationRule();
93- rule.CheckId = node.Attributes["CheckId"].Value;
94- rule.Category = node.Attributes["Category"].Value;
95- rule.Name = node["Name"].InnerText;
96- rule.ParseResolutions(node);
97- rules.Add(rule);
98- }
99- return rules;
100- }
101-
102- /// <summary>
103- /// 指定された Rule ノードを解析し、ルール違反の解決方法を表すオブジェクトを生成して、
104- /// フィールドで保持します。
105- /// </summary>
106- /// <param name="ruleNode">解析対象の Rule ノード。</param>
107- private void ParseResolutions(XmlNode ruleNode)
108- {
109- foreach (XmlNode node in ruleNode.SelectNodes("Resolution"))
110- {
111- Resolution resolution = new Resolution();
112- resolution.Content = node["Content"].InnerText;
113- resolution.Pattern = node["Pattern"].InnerText;
114- this.resolutions.Add(resolution);
115- }
116- }
117- }
118-}
--- drfx/trunk/src/Core/Translation/DrFxRule.cs (nonexistent)
+++ drfx/trunk/src/Core/Translation/DrFxRule.cs (revision 182)
@@ -0,0 +1,118 @@
1+/*
2+ * DrFx - FxCop Report Translator and Visualizer.
3+ * Copyright (C) 2010 Sasa Yuan
4+ *
5+ * This program is free software: you can redistribute it and/or modify
6+ * it under the terms of the GNU General Public License as published by
7+ * the Free Software Foundation, either version 3 of the License, or
8+ * (at your option) any later version.
9+ *
10+ * This program is distributed in the hope that it will be useful,
11+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+ * GNU General Public License for more details.
14+ *
15+ * You should have received a copy of the GNU General Public License
16+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
17+ */
18+
19+
20+
21+using System;
22+using System.Collections.Generic;
23+using System.Collections.ObjectModel;
24+using System.Linq;
25+using System.IO;
26+using System.Xml;
27+
28+namespace Sasa.QualityTools.DrFx.Core.Translation
29+{
30+ /// <summary>
31+ /// 翻訳ルールを表します。
32+ /// </summary>
33+ public class DrFxRule
34+ {
35+ /// <summary>
36+ /// 解決方法を表すメッセージのコレクション。
37+ /// </summary>
38+ private List<Resolution> resolutions;
39+
40+
41+
42+ /// <summary>
43+ /// FxCop ルールのチェック ID。
44+ /// </summary>
45+ public string CheckId { get; private set; }
46+
47+ /// <summary>
48+ /// FxCop ルールのカテゴリ。
49+ /// </summary>
50+ public string Category { get; private set; }
51+
52+ /// <summary>
53+ /// FxCop ルール名。
54+ /// </summary>
55+ public string Name { get; private set; }
56+
57+ /// <summary>
58+ /// ルール違反の解決方法を表すオブジェクトのコレクション。
59+ /// </summary>
60+ public IList<Resolution> Resolutions
61+ {
62+ get
63+ {
64+ return this.resolutions;
65+ }
66+ }
67+
68+
69+
70+ /// <summary>
71+ /// 新しいインスタンスを初期化します。
72+ /// </summary>
73+ private DrFxRule()
74+ {
75+ this.resolutions = new List<Resolution>();
76+ }
77+
78+
79+
80+ /// <summary>
81+ /// 翻訳ルールコンテンツを解析し、翻訳ルールコレクションを作成します。
82+ /// </summary>
83+ /// <param name="content">翻訳ルールコンテンツ。</param>
84+ /// <returns>翻訳ルールコレクション。</returns>
85+ public static IEnumerable<DrFxRule> Parse(string content)
86+ {
87+ List<DrFxRule> rules = new List<DrFxRule>();
88+ XmlDocument doc = new XmlDocument();
89+ doc.LoadXml(content);
90+ foreach (XmlNode node in doc.SelectNodes("/Rules/Rule"))
91+ {
92+ DrFxRule rule = new DrFxRule();
93+ rule.CheckId = node.Attributes["CheckId"].Value;
94+ rule.Category = node.Attributes["Category"].Value;
95+ rule.Name = node["Name"].InnerText;
96+ rule.ParseResolutions(node);
97+ rules.Add(rule);
98+ }
99+ return rules;
100+ }
101+
102+ /// <summary>
103+ /// 指定された Rule ノードを解析し、ルール違反の解決方法を表すオブジェクトを生成して、
104+ /// フィールドで保持します。
105+ /// </summary>
106+ /// <param name="ruleNode">解析対象の Rule ノード。</param>
107+ private void ParseResolutions(XmlNode ruleNode)
108+ {
109+ foreach (XmlNode node in ruleNode.SelectNodes("Resolution"))
110+ {
111+ Resolution resolution = new Resolution();
112+ resolution.Content = node["Content"].InnerText;
113+ resolution.Pattern = node["Pattern"].InnerText;
114+ this.resolutions.Add(resolution);
115+ }
116+ }
117+ }
118+}
--- drfx/trunk/src/Core/Translation/DrFxRuleLoader.cs (nonexistent)
+++ drfx/trunk/src/Core/Translation/DrFxRuleLoader.cs (revision 182)
@@ -0,0 +1,60 @@
1+/*
2+ * DrFx - FxCop Report Translator and Visualizer.
3+ * Copyright (C) 2010 Sasa Yuan
4+ *
5+ * This program is free software: you can redistribute it and/or modify
6+ * it under the terms of the GNU General Public License as published by
7+ * the Free Software Foundation, either version 3 of the License, or
8+ * (at your option) any later version.
9+ *
10+ * This program is distributed in the hope that it will be useful,
11+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+ * GNU General Public License for more details.
14+ *
15+ * You should have received a copy of the GNU General Public License
16+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
17+ */
18+
19+
20+
21+using System;
22+using System.Collections.Generic;
23+using System.IO;
24+using System.Xml;
25+
26+namespace Sasa.QualityTools.DrFx.Core.Translation
27+{
28+ public static class DrFxRuleLoader
29+ {
30+ private const string resourceName = "Sasa.QualityTools.DrFx.Core.Resources.DrFxRules.xml";
31+
32+
33+
34+ /// <summary>
35+ /// 翻訳ルールコンテンツを解析し、翻訳ルールコレクションを作成します。
36+ /// </summary>
37+ /// <param name="content">翻訳ルールコンテンツ。</param>
38+ /// <returns>翻訳ルールコレクション。</returns>
39+ public static IEnumerable<DrFxRule> Load()
40+ {
41+ List<DrFxRule> rules = new List<DrFxRule>();
42+ XmlDocument doc = new XmlDocument();
43+
44+ using (Stream stream = typeof(DrFxRuleLoader).Assembly.GetManifestResourceStream(resourceName))
45+ {
46+ doc.Load(stream);
47+ //foreach (XmlNode node in doc.SelectNodes("/Rules/Rule"))
48+ //{
49+ // TranslationRule rule = new TranslationRule();
50+ // rule.CheckId = node.Attributes["CheckId"].Value;
51+ // rule.Category = node.Attributes["Category"].Value;
52+ // rule.Name = node["Name"].InnerText;
53+ // rule.ParseResolutions(node);
54+ // rules.Add(rule);
55+ //}
56+ }
57+ return rules;
58+ }
59+ }
60+}
--- drfx/trunk/src/Core/Translation/Translator.cs (revision 181)
+++ drfx/trunk/src/Core/Translation/Translator.cs (revision 182)
@@ -37,7 +37,7 @@
3737 /// <summary>
3838 /// 翻訳ルールのリスト。
3939 /// </summary>
40- private List<TranslationRule> rules;
40+ private List<DrFxRule> rules;
4141
4242
4343
@@ -46,7 +46,7 @@
4646 /// </summary>
4747 public Translator()
4848 {
49- this.rules = new List<TranslationRule>();
49+ this.rules = new List<DrFxRule>();
5050 }
5151
5252
@@ -55,7 +55,7 @@
5555 /// 翻訳ルールを追加します。
5656 /// </summary>
5757 /// <param name="rule">翻訳ルール。</param>
58- public void AddRule(TranslationRule rule)
58+ public void AddRule(DrFxRule rule)
5959 {
6060 this.rules.Add(rule);
6161 }
@@ -64,7 +64,7 @@
6464 /// 翻訳ルールを追加します。
6565 /// </summary>
6666 /// <param name="rules">翻訳ルールのコレクション。</param>
67- public void AddRules(IEnumerable<TranslationRule> rules)
67+ public void AddRules(IEnumerable<DrFxRule> rules)
6868 {
6969 this.rules.AddRange(rules);
7070 }
@@ -78,7 +78,7 @@
7878 /// <returns>翻訳されたメッセージ。翻訳ルールが見つからない場合は元のメッセージ。</returns>
7979 public string TranslateIssue(string category, string checkId, string issue)
8080 {
81- foreach (TranslationRule rule in this.rules)
81+ foreach (DrFxRule rule in this.rules)
8282 {
8383 if (rule.Category == category && rule.CheckId == checkId)
8484 {
@@ -98,7 +98,7 @@
9898 XmlDocument report = new XmlDocument();
9999 report.LoadXml(content);
100100
101- foreach (TranslationRule rule in this.rules)
101+ foreach (DrFxRule rule in this.rules)
102102 {
103103 string xpath = "//Message[@CheckId='" + rule.CheckId + "' and @Category='" + rule.Category + "']";
104104 foreach (XmlNode node in report.SelectNodes(xpath))
@@ -121,7 +121,7 @@
121121 /// </summary>
122122 /// <param name="messageNode">翻訳対象の Issue ノードを含む Message ノード。</param>
123123 /// <param name="rule">翻訳ルール。</param>
124- private static void TranslateIssues(TranslationRule rule, XmlNode messageNode)
124+ private static void TranslateIssues(DrFxRule rule, XmlNode messageNode)
125125 {
126126 foreach (XmlNode node in messageNode.SelectNodes("Issue"))
127127 {
@@ -136,7 +136,7 @@
136136 /// <param name="rule">翻訳ルール。</param>
137137 /// <param name="issue">FxCop 違反メッセージ。</param>
138138 /// <returns>翻訳されたメッセージ。翻訳ルールが見つからない場合は元のメッセージ。</returns>
139- private static string TranslateIssue(TranslationRule rule, string issue)
139+ private static string TranslateIssue(DrFxRule rule, string issue)
140140 {
141141 foreach (Resolution resolution in rule.Resolutions)
142142 {
Afficher sur ancien navigateur de dépôt.