in EnvDTE.Host/Callback/Util/EnvDteCallbackProviderExtensions.cs [109:120]
public static void SetWithSolutionMarkSync<TReq, TRes>(
this IRdEndpoint<TReq, TRes> endpoint,
ISolution solution,
Func<TReq, ISolutionMark, TRes> func) =>
endpoint.SetSync(req =>
{
var solutionMark = solution.GetSolutionMark();
if (solutionMark is null)
throw new InvalidOperationException("Unable to get the solution mark.");
return func(req, solutionMark);
});