배열을 반복하는 동안 오류가 발생합니다 (암시 적으로 System.Array 형식을 문자열로 변환 할 수 없음). 나는 코드를 따라 갔고 for 루프는 올바른 값을 가져왔다.System.Array 형식을 암시 적으로 문자열로 변환 할 수 없습니다.
value = WordMergeFields.ContainsKey(fieldname) ? WordMergeFields[fieldname] : null;
에서 일어나는
public static string[] name = new string[] { "Chris" };
public static void FindMergeFielsa(WordprocessingDocument WPDoc, Dictionary<string, Array> WordMergeFields)
{
foreach (var field in WPDoc.MainDocumentPart.Document.Body.Descendants<SimpleField>())
{
string[] instruction = field.Instruction.Value.Split(splitChar, StringSplitOptions.RemoveEmptyEntries);
if (instruction[0].ToLower().Equals("mergefield"))
{
string fieldname = instruction[1];
foreach (var fieldtext in field.Descendants<Text>())
{
if (fieldtext.InnerText =="«_skils»")
{
//TODO
}
else
{
for (int i = 0; i < name.Length; i++)
{
string value = name[i];
//ERORR HERE Keeps Changing Value of Name "Chris" to system.string[] when put .ToString()
value = WordMergeFields.ContainsKey(fieldname) ? WordMergeFields[fieldname] : null;
if (value != null)
{
fieldtext.Text = value;
}
}
}
}
}
}
}
exceptionis 나는 문자열로 WordMergeFields [필드 이름]을 설정하는 시도했지만 이런 때이 코드가 연결되어있는 단어 템플릿의 이름을 표시한다 이름이 "chris"인 System.String []을 불러옵니다. 난 그냥 어떻게 system.array 형식의 문자열을 커버하는 문제를 해결할 수 있습니다 궁금 해서요. 줄 수있는 도움을 주셔서 감사합니다
WordMergeFields로 교체하십시오.추가 ("이름", 이름); 이것은 템플릿의 배열 필드와 병합 필드를 찾을 문자열의 색인을 가진 사전입니다. – willa
원래 게시물을 편집 할 수 있습니다 ... –