VB -> C#: The LINQ-to-XML attribute axis accessor should be translated as a call to XElement.Attribute rather than XElement.Attributes.
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 45/100
Línea de trabajo
Comienza reproduciendo la entrada VB.NET del issue e inspecciona el punto de entrada de la traducción del eje de atributos de LINQ-to-XML. Compara la llamada Attributes generada con la llamada Attribute esperada y la conversión a string. Se considera terminado cuando tanto los atributos existentes como los que faltan producen las expresiones C# esperadas y conservan el comportamiento en tiempo de ejecución mostrado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
VB.Net input code
Dim x = <MyTag MyAttribute="a"/>
Dim existingAttributeValue As String = x.@MyAttribute
Dim missingAttributeValue As String = x.@MissingAttribute
Console.WriteLine(existingAttributeValue = "a")
Console.WriteLine(missingAttributeValue Is Nothing)
Erroneous output
(snipped to the relevant part)
string existingAttributeValue = x.Attributes("MyAttribute");
string missingAttributeValue = x.Attributes("MissingAttribute");
Expected output
string existingAttributeValue = (string)x.Attribute("MyAttribute");
string missingAttributeValue = (string)x.Attribute("MissingAttribute");
Details
- Product in use: icsharpcode.github.io/CodeConverter [NB: Here's a typo in the github issue template] / VS extension 9.0.4.0
- VB.NET's
x.@AttributeNamereturns a string, and so should the converted C# expression. Casting the result to string (using the explicit conversion defined in XAttribute) seems to be the idiomatic way in C# to get this value. In addition, that's also what the VB compiler does (indirectly, via a call to My.InternalXmlHelper). Multiple matching attributes (which would be an argument for calling Attributes) are not an issue, since attribute names must be unique within an XElement, and the documentation of XElement.Attributes(XName) explicitly states that the returned collection always contains exactly 0 or 1 elements.
- Lenguaje dominante
- C#
- Estrellas
- 913
- Forks
- 244
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de icsharpcode/CodeConverter
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
icsharpcode/CodeConverter#1271 · 1 comentario ·
-
C# -> VB
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
icsharpcode/CodeConverter#1281 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
icsharpcode/CodeConverter#1275 ·
-
VB -> C#
Dificultad 3/5 1-2 días Aptitud para principiantes 62/100
icsharpcode/CodeConverter#1273 ·
-
VB -> C#: "Group By Into" Linq queries supressing aggregations ("Into" part) in the converted code AbiertoDifficult area VB -> C#
Dificultad 3/5 1-2 días Aptitud para principiantes 74/100
icsharpcode/CodeConverter#1272 ·
Todos los issues de icsharpcode/CodeConverter
Issues similares
-
core dependencies
Dificultad 1/5 Menos de una hora Aptitud para principiantes 80/100
-
bug frontend good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
NavigationViewItemAutomationPeer implements IInvokeProvider but never advertises the Invoke pattern Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
unoplatform/uno#24629 ·
-
agentic-workflows Needs: Triage :mag: State: In-PR
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Down / Waiting for removal
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100