Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
Matthias Dittrich
@matthid
In memory (which has some downsides), but you can still to it with DisableTempFileLocking (so I basically changed the default)
Nikola Sivkov
@aviatrix
i have a theory on why using linq methods on dynamic properties blows up now and it didn't before
ah, i see
Matthias Dittrich
@matthid
why would it matter on linq methods?
Nikola Sivkov
@aviatrix
something to do with parts of anon/dynamic objects being internal
and since they are stored outside of the memory now, they are different assembly
and executing assembly not being able to see the internal stuff and blowing up
Matthias Dittrich
@matthid
First if you use dynamic we have some RazorEngine internal trickery in place to wrap the dynamic/anon object so that you can access internal stuff in the template
Matthias Dittrich
@matthid

Second its not a RazorEngine limitation as the following code shows:


    using System;
    using System.Linq;

    public class Test
    {
        public static dynamic TestMethod()
        {
            var a = new[] { "first", "second", "self" };
            var ext = a.First();
            dynamic c = new[] {"first", "second", "self"};
            return c.First();
        }

        public static void Main(string[] args)
        {
            string ret = TestMethod();
        }
    }

try to compile an run it

Nikola Sivkov
@aviatrix
yeah, it blows up
sorry if i'm being annoying, i'm just trying to understand what has changed, and why my code blows up now
Matthias Dittrich
@matthid
Sorry if my answers felt rude, I just tried to get them on point. By the way a lot of things changed in 3.5 but I tried my best to make everything as much backwards compatible as possible... This especially this place (dynamic/anonymous classes) is a minefield...
Nikola Sivkov
@aviatrix
It wasn't rude :)
Matthias Dittrich
@matthid
It might have worked in the past because we used to try to "guess" the type with a combination of generic parameter and "model.GetType()" which often worked as expected, often worked (but not as one would imagine) and sometimes failed in some corner cases.
But from your description I would say it was a bug if it ever worked (without knowing the exact template and RazorEngine call you used)
Nikola Sivkov
@aviatrix
in my case i tried to construct a dynamic object form a dictionary
var  tpl = Razor.GetTemplate(templateHtml, new {}, pageCacheKey);
var viewbag = new DynamicViewBag();              
var ctx = new ExecuteContext(viewbag);
var result = tpl.Run(ctx);
Matthias Dittrich
@matthid
Is there something blocking you from updating to the latest API (Documentation: https://antaris.github.io/RazorEngine/index.html)
Nikola Sivkov
@aviatrix
i was't using the viewbag anyway
no, i've updated fully
but found that couple of client templates broke after the update
(writing my own CMS for clients, and whatnot )
Matthias Dittrich
@matthid
a concrete sample would be nice: the template, the old RazorEngine call and the new call
Nikola Sivkov
@aviatrix
i will try to get that to you
@matthid Good night, and thanks for the help & your time !
Matthias Dittrich
@matthid
Good night, you are welcome :)
Nikola Sivkov
@aviatrix
@matthid ping
Matthias Dittrich
@matthid
pong
Nikola Sivkov
@aviatrix
how's it going :)
Matthias Dittrich
@matthid
fine and you?
Nikola Sivkov
@aviatrix
same, same
today i'm trying another approach to see how it goes, in regards to "dynamics"
Matthias Dittrich
@matthid
good luck :)
Nikola Sivkov
@aviatrix
thank you!
i'm generating a class at runtime with reflection
Matthias Dittrich
@matthid
puh, why do you even need that?
Nikola Sivkov
@aviatrix
so i got proper linq going on :D
Matthias Dittrich
@matthid
can't you modify the templates at all?
Nikola Sivkov
@aviatrix
i can, but that's not the point of it :)
Matthias Dittrich
@matthid
or just use static types
Nikola Sivkov
@aviatrix
+ i learn butload of stuff :)
Matthias Dittrich
@matthid
ah okey :)
always a good reason to start stuff :D
Nikola Sivkov
@aviatrix
tell me about it ... got like 5 project laying around half finished
Matthias Dittrich
@matthid
only 5 ;)
Nikola Sivkov
@aviatrix
so far !
those are the ones that have code written
huraken
@huraken
hey