|
Reversed - you need to send the codz
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
|
I'm working on a SignalR app. The app automatically serializes message to JSON. However I have noticed that enums not markes as [Serializable] cause the messages to fail to be send.
For the enums that I created it's a simple fix. Just add the attribute.
But how do I fix the enums that are .Net framework enums? On my model that I'm passing I have a copy of the FileSystemWatcher's WatcherChangeTypes enum. Since I can't mark the enum as [Serializable] the service call fails.
I thought of two possible fixes:
1) Create my own enum and copy the .Net values to mine
2) Use an int value and cast/uncast the enum value as needed.
Anyone have any insight on this? I'd really prefer to just be able to use the .Net enums.
Thanks
If it's not broken, fix it until it is
|
|
|
|
|
According to this blog post[^], you can either decorate the property with the JsonConverter attribute:
[JsonConverter(typeof(StringEnumConverter))]
public WatcherChangeTypes ChangeTypes { get; set; }
or add the converter to the serializer globally:
public class Startup
{
public void Configuration(IAppBuilder app)
{
var serializer = new JsonSerializer();
serializer.Converters.Add(new StringEnumConverter());
GlobalHost.DependencyResolver.Register(typeof(JsonSerializer), () => serializer);
app.MapSignalR();
}
}
Although I suspect it might be better to add the converter to the default settings, rather than reusing the same serializer instance for every call:
public class Startup
{
public void Configuration(IAppBuilder app)
{
JsonConvert.DefaultSettings = () => new JsonSerializerSettings
{
Converters =
{
new StringEnumConverter()
}
};
app.MapSignalR();
}
}
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Looks good. I'll give it a try
Thanks
If it's not broken, fix it until it is
|
|
|
|
|
Message Closed
modified 24-Aug-16 7:19am.
|
|
|
|
|
No, I'm using SignalR
If it's not broken, fix it until it is
|
|
|
|
|
Hi
Please give me coding to tracking email, I tried to do this using image binding in email but I was fail, kindly give me some solution for this.
Thanks in advance
|
|
|
|
|
You can't, not in practice.
The reason you can't do it with images is because most email applications don't load images so that the email can't be tracked: too many spammers / phishers were using it to identify "live" email addresses and target them specifically.
Unfortunately, that means that "legitimate" uses of such tracking can't do it either. The only reliable way to track emails now is to include a link that the user needs to respond to.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
OriginalGriff wrote: The only reliable way to track emails now is to include a link that the user needs to respond to. I already do that but they all seem to ignore igotyou.com links, it just does not seem fair that no one will give me the code to achieve my goal.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
Hi is there a way in Visual Studio (2012) to quickly change var into class eg i have:
foreach (var item in document.documentPositions)
{...}
where document.documentPositions is list of object of class: DocumentPosition
so is there a way to RMB click on var and choose some option to convert it to DocumentPosition ?
I know that if i hover mouse over it i see class name but i want to change it quickly .
Thanks for help.
|
|
|
|
|
Annoyingly, no, there isn't.
There is an extension: Var Replacer C# extension[^] - but as var as I know that only works for VS2015.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
If you use ReSharper, there is an option to switch to explicit Type declaration from 'var via either a left-margin click on an icon, or by keyboard alt-enter.
«There is a spectrum, from "clearly desirable behaviour," to "possibly dodgy behavior that still makes some sense," to "clearly undesirable behavior." We try to make the latter into warnings or, better, errors. But stuff that is in the middle category you don’t want to restrict unless there is a clear way to work around it.» Eric Lippert, May 14, 2008
|
|
|
|
|
Really should be part of VS by now...
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
ReSharper is the demon responsible for most of this var nonsense!
var customers = ctx.Customers.Where(c => c.HasOrders);
var customer = customers.FirstOrDefault();
if (customer != null)
{
var orderCount = customer.Orders.Count;
var value = customer.Orders.Sum(o => o.Total);
var postage = ctx.Postage.Where(p => P.Country == customer.Country);
var valuePlusPostage = value += postage;
var tax = financeHelper.TaxRate;
}
|
|
|
|
|
But if you don't like the option that changes a fully-specified type to 'var', why are you using it? I'm assuming here that Resharper doesn't do that by itself, or if it does that it is a 'feature' that can be turned off.
(No, I am not using Resharper myself, never have)
(Yes, I do prefer 'var': it saves keystrokes; intellisense provides me with the name of type if I need it)
|
|
|
|
|
I don't use resharper myself but most of my colleagues do. In its default configuration it flags a warning on any use of explicit types, suggesting you use var instead. Yes it can be turned off, but no-one does. And yes it can also be ignored, but people would rather just use var to get rid of the wiggly line (see previous comment).
|
|
|
|
|
F-ES Sitecore wrote: people would rather just use var They should be made to rewrite their code in COBOL. 
|
|
|
|
|
Ok, I'll bite. But I am not saying this or that, just interested in your opinion.
Why wouldn't you use var ? What's wrong with it?
|
|
|
|
|
You're doing a code review in Crucible and you see this statement:
var descendant = GetDescendant(); What is the type of descendant? Is it nullable? Surely Intellisense will tell me what the type is? Oh wait, I'm in a web browser now.
This space for rent
|
|
|
|
|
I implied we were talking about developers and var , not how it affects reviewers. But fair enough I guess.
If you know what GetDescendant() does, then you'll know the return type (assuming here).
If you don't know what the method does, then maybe that should be made clear first.
What is more important, the method and what it does, or the specific technical return type?
I'm not trying to convince you of anything, I'm just trying to understand your way of thinking.
|
|
|
|
|
maarten_oosterhoff wrote: not how it affects reviewers. But fair enough I guess. Who does your code reviews if it's not developers?maarten_oosterhoff wrote: If you know what GetDescendant() does, then you'll know the return type (assuming here). And what happens when you're reviewing a piece of code that calls a method that was written 5 years ago that you have never had cause to look into? You're introducing blockers for reviewers just because you can't be bothered to type the full type.
maarten_oosterhoff wrote: What is more important, the method and what it does, or the specific technical return type? If you don't know the return type, how can you tell if the person whose code you're reviewing is using the type properly or that it will even compile? You have to give people the context to help them.
This space for rent
|
|
|
|
|
Pretty much what Pete said, you can't discern the types simply by looking at them. Can I find them out? Yes. But I'd rather not have to find them out, I'd rather know by just looking at the code.
|
|
|
|
|
F-ES Sitecore wrote: you can't discern the types simply by looking at them
Agreed, for things like:
var frob = DoSomething();
But, for cases where the type is obvious, var cuts down on the clutter:
var myFoos = new Dictionary<string, Foo>();
However, if for some reason you need the variable type to be an interface or a base type, var isn't a good option:
IDictionary<string, Foo> myFoos = new Dictionary<string, Foo>();
Like almost anything, var has sensible uses and no-so-sensible uses. It's up to the developer to decide which is which!
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|