Skip to content

Conversation

@manodasanW
Copy link
Member

  • Added support for projecting classes implementing generics
  • Added support for projecting arrays
  • Ported all the additions to the new format.
  • To avoid having them as all manual projections, I added support for partial additions which basically cswinrt will generate the type with partial and we will add the addition as another partial type. This is mostly for types which just had a custom ToString that they wanted to add.
  • Enabled all the projections and address issues encountered.
  • Moved most event sources to respective ABI namespace to avoid hard coding in cswinrt.exe

Copy link
Member

@Sergio0694 Sergio0694 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did a first partial pass, left some notes for now 🙂


case RepeatBehaviorType.Count:

global::System.Text.StringBuilder sb = new global::System.Text.StringBuilder();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also we should set SkipLocalsInit for all projection .dlls if we don't already. At least the merged .dll, as we own it.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will handler later once we have merged dll

// the transform is identity by default
private static Matrix s_identity = CreateIdentity();

public static Matrix Identity
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tannergooding is there something smart we could do here like creating a BCL matrix and reinterpreting it or something, rather than storing this value in a static field like this?

Copy link
Member

@Sergio0694 Sergio0694 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Checked the projection .dll too, looks great!! 🎉

/// </summary>
/// <param name="exception">The input <see cref="Exception"/> instance to attach the error info to.</param>
/// <returns>The input <see cref="Exception"/> instance with attached error info.</returns>
public static Exception AttachErrorInfo(Exception exception)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this only meant to be used by projections? I'm thinking if so we might want to mark this one and the other ones in RestrictedErrorInfo that are not for general use as private implementation detail methods (or move them).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will address in upcoming PR.

@manodasanW manodasanW merged commit 0d1da9c into staging/3.0 Nov 5, 2025
10 checks passed
@manodasanW manodasanW deleted the manodasanw/generics branch November 5, 2025 02:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants