Areas where System.Reflection.Emit still are used
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 45/100
Research direction
Start by reading ClassMap.cs, ClientClass.cs, Exts.cs, and Panel.cs, where the issue identifies uses of System.Reflection.Emit DynamicMethod. Determine the intended scope for replacing or removing these uses; the issue does not specify an alternative or acceptance criteria. Done means the agreed-upon uses are addressed and the relevant project tests pass.
Written by the indexing model from the issue text.
Description
ClassMap.cs
DynamicMethod m = new DynamicMethod("LinkEntity_Instantiate" + type.Key.Name + "_ToMap_" + attr.LocalName, typeof(C_BaseEntity), []);
ClientClass.cs
DynamicMethod method = new DynamicMethod($"CreateObjectDynImpl_{t.Name}", typeof(IClientNetworkable), [typeof(int), typeof(int)]);
Exts.cs
var dm = new DynamicMethod("get", MethodAttributes.Static | MethodAttributes.Public, CallingConventions.Standard, typeof(T[]), [typeof(List<T>)], typeof(ArrayAccessor<T>), true);
dm = new DynamicMethod("getSize", MethodAttributes.Static | MethodAttributes.Public, CallingConventions.Standard, typeof(int).MakeByRefType(), [typeof(List<T>)], typeof(ArrayAccessor<T>), true);
var dm = new DynamicMethod("Clear_" + type.Name, null, new[] { typeof(object) }, true);
var dm = new DynamicMethod("Copy_" + type.Name,
null,
new[] { typeof(object), typeof(object) },
true);
Panel.cs
DynamicMethod methodBuilder = new($"{t.Name}PanelAnim_GetVar_{field.Name}", typeof(object), [typeof(Panel)]);
DynamicMethod methodBuilder = new($"{t.Name}PanelAnim_SetVar_{field.Name}", typeof(void), [typeof(Panel), typeof(object)]);
- Dominant language
- C#
- Stars
- 104
- Forks
- 9
- Avg merge
- 8h 34m
- Merged PRs (30d)
- 109
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from SourceDotNET/Source.NET
-
Difficulty 2/5 1-3 hours Newbie friendliness 69/100
SourceDotNET/Source.NET#203 ·
Maintainers usually reply within 1 day
-
There are still cases where paths are case sensitive on non-Windows platformsPossibly taken @marchc1 claimed this today. Open
SourceDotNET/Source.NET#202 · 1 assignee ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
SourceDotNET/Source.NET#117 · 2 comments ·
Maintainers usually reply within 1 day
-
We need to consider a unified API for validationMay be free again @marchc1 claimed this 367 days ago, and no pull request is open. OpenEnhancement Needs More Info
SourceDotNET/Source.NET#37 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Need to consider refactoring the API for concommand autocompleteMay be free again @marchc1 claimed this 367 days ago, and no pull request is open. OpenEnhancement Performance
SourceDotNET/Source.NET#36 · 1 assignee ·
Maintainers usually reply within 1 day
All issues in SourceDotNET/Source.NET
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
sebastienros/jint#4282 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 76/100
pyrevitlabs/pyRevit#3792 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 60/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 65/100
fboucher/2d6-dungeon-app#256 ·
Maintainers usually reply within 1 day
-
area: design documentation
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
eyalgolan/statecraft-israel#883 ·
Maintainers usually reply within 1 day