Comments (10)
@mmalek06
Thanks for the inquiry. This feature is number one in the list. Hope to get it available asap.
from remute.
Just for the context: there is a bit of complexity for this feature because remute supports nested "mutations". E.g instance.Remute(x => x.Prop1.Prop2.Prop3, value)
from remute.
@SuddenGunter thanks for posting this.
It's implemented as an extension method in 1.0.5.
You can do something like this
using Remutable.Extensions;
...
var employee = new Employee(Guid.NewGuid(), "Joe", "Doe");
var actual = employee
.Remute(x => x.FirstName, "Foo")
.Remute(x => x.LastName, "Bar");
Assert.AreEqual("Foo", actual.FirstName);
Assert.AreEqual("Bar", actual.LastName);
from remute.
@ababik, thank you!
var actual = employee
.Remute(x => x.FirstName, "Foo")
.Remute(x => x.LastName, "Bar");
after calling this - how many employee were actually allocated in memory?
2 (employee
and actual
) or 3 (+intermediate Remute call)?
from remute.
@SuddenGunter
3 (+intermediate Remute call)
Extension method is just sugar syntax. Take a look at https://github.com/ababik/Remute/blob/master/Remute/Extensions/ExtensionMethods.cs for details.
from remute.
But is there some possible "magic" that we can use to make it 2? :)
even if we do .with().with().with() etc
from remute.
It's doable.
Can you explain me your use-case a little? Are your instances local variables? Do you modify them in a loop? Do you use Mono?
I don't experience any memory issues in my use-cases. Garbage collector does its job well.
from remute.
Just local variables, small services on .Net Core in docker. It would be ok?
from remute.
Absolutely.
from remute.
Hi @ababik ,
Any news on @SuddenGunter suggestions? Even though garbage collector does its job well, it could be beneficial not to create a whole bunch of intermediate objects in high-data-volume scenarios. I think Immutable.Net has this notion of builders to address this exact issue, though their code is much more cumbersome to use in other scenarios than yours.
from remute.
Related Issues (17)
- Remute throws an exception when object contains struct parameters / properties HOT 1
- Does it support Department with List<Employee>? HOT 3
- Feature - Allow specifying the constructor to use for activition HOT 2
- 'Remute' is a namespace but is used like a type HOT 3
- Consider a Remute.Instance static property? HOT 2
- Should it throw an exception if unable to perform the update? HOT 1
- Unspecified license HOT 1
- Suggestion: Verbose error messages HOT 1
- Use attribute to select constructor HOT 6
- Pass a ValueTuple to With HOT 4
- Concurency HOT 6
- InstanceExpressionCacheKey not needed HOT 7
- some code notes
- Exception when parameter types don't match but names do HOT 2
- Inherited properties HOT 2
- optimization suggestions
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from remute.