Ну, ты не можешь. Анонимный тип, не может быть доступен по имени. В этом весь смысл. Вы не можете передать тип, тип существует внутри, и вы можете предоставить тип только как System.Object.
Вы всегда можете использовать отражение, чтобы выкопать свойства и получить к ним доступ таким образом, но кроме этого, нет никакого способа обойти это.
var q = new { MyProperty = "Hello World" };
var t = q.GetType();
var hello = t.GetProperty("MyProperty").GetValue(q, null) as string;
Console.WriteLine(hello);
Если вам нужен доступ к типу, вы должны создать пользовательский объект / тип, который можно идентифицировать по имени.