I'm trying to copy a list item from one list to another. The lists are on the same site and the code is being fired inside of an item added/updated event receiver).

Both lists have managed metadata fields mapped to the same term sets.

Everything works as excepted until I try to set the Managed Metadata fields.

            SPListItem newItem = destinationList.Items.Add();
            newItem["Title"] = oldItem.Title;
            //Assign the rest of the non-taxonomy field values
            SetTaxononmyField(newItem, myTaxonomyFieldValue, "fieldname");


    private void SetTaxononmyField(SPListItem newItem, TaxonomyFieldValue value, string fieldname)
        TaxonomyField field = newItem.Fields.GetFieldByInternalName(fieldname) as TaxonomyField;
        if (field != null)
            field.SetFieldValue(newItem, value);//Throws "Specified method is not supported" exception here

2 Answers 2


I had the same problem today when copying. Difference for me I was copying from one column to another. Both columns were managed metadata columns pointing to the same managed metadata.

The reason I kept getting the error was because the column I read in was a Managed Metadata that allowed multiple values, the second column didn't. Therefore Specified Method was not supported because I was trying to add a TaxonomyFieldValueCollection to a column that only expected a TaxononomyFieldValue.

Looking at the code above, you might have been doing it the other way round. A TaxonomyFieldValue into a TaxonomyFieldValueCollection column.

  • I just had the same issue in SharePoint Online. Allowing multiple values fixed it!
    – Daniel B
    Oct 4, 2016 at 7:07

The issue disappeared when I created a custom content type for the destination list. The code from above changes slightly to set the SPListItem content type.

            //retrieve and set the content type
            SPContentType contentType = destinationList.ContentTypes["ContentTypeName"];
            SPListItem newItem = destinationList.Items.Add();
            newItem["ContentTypeId"] = contentType.Id;

If anyone could shed some light on why I had to do this I'd appreciate it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.