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.
Global`, this method won't work for it, because then$NewSymbolwon't fire. – Leonid Shifrin May 01 '14 at 11:41Context[sym] = newContextalone however, which I either wasn't aware of or forgot. – Mr.Wizard May 01 '14 at 11:41Conext[sym]=thing, I think (I mean, outside of WRI). I discovered it myself some time ago, but I am sure I haven't seen any single mention of this thing anywhere on SO, SE of MathGroup. This was a good opportunity to mention it. – Leonid Shifrin May 01 '14 at 11:43