C# Can';t如果没有关键字开始,则添加图像关键字,Taglib Sharp

C# Can';t如果没有关键字开始,则添加图像关键字,Taglib Sharp,c#,image,taglib,taglib-sharp,C#,Image,Taglib,Taglib Sharp,我正在尝试使用Taglib Sharp向图像文件添加元数据关键字。我的问题是以下代码: image.ImageTag.Keywords = (string[])newTags.ToArray(typeof(string)); image.Save(); 如果文件中没有要开始的关键字,则不执行任何操作。如果我在资源管理器中打开文件属性并首先手动添加标记,它会正常工作并将标记添加到文件中 我尝试在这个方法的顶部设置一个断点,我可以看到image.ImageTag.Keywords的长度为零,正如它

我正在尝试使用Taglib Sharp向图像文件添加元数据关键字。我的问题是以下代码:

image.ImageTag.Keywords = (string[])newTags.ToArray(typeof(string));
image.Save();
如果文件中没有要开始的关键字,则不执行任何操作。如果我在资源管理器中打开文件属性并首先手动添加标记,它会正常工作并将标记添加到文件中

我尝试在这个方法的顶部设置一个断点,我可以看到
image.ImageTag.Keywords
的长度为零,正如它一开始应该的那样,代码段
(string[])newTags.ToArray(typeof(string))
确实成功地返回了一个填充的字符串数组,但是在这一行之后,
image.ImageTag.Keywords
变量的长度仍然是零


我完全被困在这里了,如果我先手动添加至少一个标签,一切都很好。这个问题只有在文件中没有标签时才会出现。

好的,经过几个小时的调试,我得出结论,这个问题是TagLib本身的一个缺陷。如果创建了一个新的图像文件,并且该文件的meta-keyword属性从未手动更改,那么TagLib似乎只是忽略设置
image.ImageTag.Keywords
数组,只是跳过它。为了让它更改文件中的关键字,我必须首先手动向文件添加标记,然后将其删除。这将初始化文件本身中的tag属性,因此允许TagLib对其进行设置。如果此属性从未初始化,TagLib将忽略尝试设置
image.ImageTag.Keywords
变量

有谁能补充一下,告诉我有没有可能绕过这个问题