Проблема в том, что вы не вызываете перегрузку, как вы думаете.Вы звоните Debug.WriteLine(string, string)
, в котором первый параметр используется как сообщение, а второй как категория , а не аргумент формата.
Самый простой способ исправитьэто приведёт ваш аргумент к object
, чтобы вынудить его использовать перегрузку Debug.WriteLine(string, params object[])
:
Debug.WriteLine("Queued batch item: {0}", (object) bm.BatchName);
Подход немного длиннее, но, возможно, более объектный, для явного создания массива:
Debug.WriteLine("Queued batch item: {0}", new object[] { bm.BatchName });
Или (просто для продолжения предоставления опций :) вызовите string.Format
, чтобы вызвать перегрузку Debug.WriteLine(string)
:
Debug.WriteLine(string.Format("Queued batch item: {0}", bm.BatchName));
или когда вы просто , включая аргумент непосредственно в конце:
Debug.WriteLine("Queued batch item: " + bm.BatchName);
В качестве альтернативы, вы можете создать свой собственный удобный метод, который не делает 't имеет дополнительную, бесполезную (в вашем случае) перегрузку.