type new c# linq anonymous-types

type - new object c#



Tipo Anónimo Tipo Colisión (2)

Creo que quieres algo como lo siguiente, donde agregas tu declaración de uso dentro del espacio de nombres para darle preferencia en la resolución de nombres:

using Customer.CustomerContext; namespace yourNameSpace { using Customer.CustomerWeb.Presentation; //Where f__AnonymousType9<Name,Value> exists }

Una consulta de linq que devuelve un tipo anónimo produce el siguiente error cuando se ejecuta.

The type ''<>f__AnonymousType9<Name,Value>'' exists in both ''Customer.CustomerWeb.Presentation.dll'' and ''Customer.CustomerContext.dll''

Usando JetBrains dotPeek pude encontrar que hay 2 clases generadas por compilador que chocan.

Customer.CustomerContext.dll

internal sealed class <>f__AnonymousType9<<PayrollSiteID>j__TPar, <IsActive>j__TPar>

Customer.CustomerWeb.Presentation.dll

internal sealed class <>f__AnonymousType9<<Name>j__TPar, <Value>j__TPar>

Ambas clases generadas están en el namespace raíz. ¿Hay alguna manera de que pueda dirigir las Anonymous Type classes a un espacio de nombres en particular en cada ensamblaje? La solución fácil es agregar una tercera variable a una de las consultas anónimas, sin embargo, esto es más como un hack.


De los comentarios

Se traduce en un . Para obtener The type ''<>f__AnonymousType9<Name,Value>'' exists in both
''Customer.CustomerWeb.Presentation.dll'' and ''Customer.CustomerContext.dll''
The type ''<>f__AnonymousType9<Name,Value>'' exists in both
''Customer.CustomerWeb.Presentation.dll'' and ''Customer.CustomerContext.dll''
The type ''<>f__AnonymousType9<Name,Value>'' exists in both
''Customer.CustomerWeb.Presentation.dll'' and ''Customer.CustomerContext.dll''
Tengo que dejar un punto de interrupción antes del bloqueo. Inspeccionar la variable es cuando recibo ese mensaje

La colisión del espacio de nombres no es su problema, ya que hace que el depurador explote cuando intenta evaluar la variable, pero no veo cómo podría causar un . Debe: a) mirar más de cerca el linq para averiguar dónde tiene alguna recursión accidental o b) publicar una parte del seguimiento de pila para que podamos ayudarlo a rastrearlo.