Kentico 7 to 8 upgrade, adding parameters to macro resolver

Jeff Steil asked on September 9, 2014 18:00

I'm converting a client website from Kentico 7.0.84 to Kentico 8. They have a lot of custom code on the website and I ran the CodeUpgrade utility to resolve most of the issues but still have quite a few that I have been fixing manually. I've run into a problem with MacroResolver and how to set parameters on it.

I've changed the object from ContextResolver to MacroResolver and figured out that EncodeResolvedValues is now under Settings.EncodeResolvedValues. I can't figure out how to set the SourceParameters though. I just get MacroResolver does not contain a definition for SourceParameters.

In v7:

string[,] replacements = new string[5, 2];
replacements[0, 0] = "firstname";
replacements[0, 1] = firstName;
replacements[1, 0] = "lastname";
replacements[1, 1] = lastName;
replacements[2, 0] = "email";
replacements[2, 1] = email;
replacements[3, 0] = "phone";
replacements[3, 1] = phone;
replacements[4, 0] = "attendeeGUID";
replacements[4, 1] = attendeeGUID;

ContextResolver resolver = CMSContext.CurrentResolver;
resolver.SourceParameters = replacements;
resolver.EncodeResolvedValues = true;

In v8:

string[,] replacements = new string[5, 2];
replacements[0, 0] = "firstname";
replacements[0, 1] = firstName;
replacements[1, 0] = "lastname";
replacements[1, 1] = lastName;
replacements[2, 0] = "email";
replacements[2, 1] = email;
replacements[3, 0] = "phone";
replacements[3, 1] = phone;
replacements[4, 0] = "attendeeGUID";
replacements[4, 1] = attendeeGUID;

MacroResolver resolver = MacroContext.CurrentResolver;

resolver.SourceParameters = replacements; //Doesn't exist on MacroResolver.
resolver.Settings.EncodeResolvedValues = true;

Any ideas on how I set source parameters? Thanks.

Correct Answer

Yehuda Lando answered on September 9, 2014 20:01

I'm not positive about this, but try using resolver.SetNamedSourceData();

0 votesVote for this answer Unmark Correct answer

Recent Answers


Jeff Steil answered on September 9, 2014 20:19

Yes, that was it! Thank you.

0 votesVote for this answer Mark as a Correct answer

Shannon Dunn answered on September 23, 2014 06:39

Which version of SetnamedSourceData would you use as a replacement for "replacements". Documentation does not provide any examples.

0 votesVote for this answer Mark as a Correct answer

   Please, sign in to be able to submit a new answer.