Using Begin
and End
won't help, because .mx files are lower-level and the way they are loaded is different from normal packages.
I was about to say that this isn't possible, but here is a hack which seems to work:
ClearAll[loadInContext];
loadInContext[context_String,file_String/;FileExtension[file]==="mx"]:=
Module[{tag},
Block[{$NewSymbol=Sow[#1,tag]&},
With[{created=(If[#1==={},{},First[#1]]&)[Reap[Import[file],tag][[2]]]},
Scan[(Context[#1]=context)&,created]
]
]
]
You can use this as, for example:
loadInContext["MyContext`", "test.mx"}]
It is based on a rather interesting and little-known feature, that the assignment like
Context[sym] = newContext
will move the symbol (together with the global rules possibly attached to it) to a new context.