How can you create a c# dependent variable? [closed] - c#

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
I am trying to create a c# method that can be reused multiple times,but depending on the condition of the variable type, i would like to be able to construct the name of a text field.
For example, if type="TY" then I would like to call
if ((String)this.TYIdlabelChange.Value == null)
However, if type="CA", then I would like to call
if ((String)this.CAIdlabelChange.Value == null)
Other examples:
if ((String)this.DIIdlabelChange.Value == null)
if ((String)this.LOIdlabelChange.Value == null)
if ((String)this.REIdlabelChange.Value == null)
etc...
Any ideas?
Thank you!

You need use Page.FindControl, something like this
var tb = FindControl(type+"IdlabelChange") as Textbox;
if(tb != null && tb.Value != null){
....
}

Related

SessionBag missing in servicestack version 4.5.0 [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 6 years ago.
Improve this question
I am new to servicestack and using servicestack version 4.5.0.
With reference to the ServiceStack 'session' missing?
Where can I find this base.SessionBag property ? with base keyword I am getting
these intellisense
please help me.
what does this line means:
Inside a Service the dynamic untyped Session Bag was renamed to base.SessionBag.
what does this line means:
Inside a Service the dynamic untyped Session Bag was renamed to base.SessionBag.
when I write base. I find following intellisense
base.Session //-- Property Method
base.SaveSession //--- Extension
base.SessionAs<>
base.SessionFactory //-- Property Method
public class EntryService : Service
{
public object Post(Entry request)
{
var date = request.Time.Date;
var trackedData = (TrackedData)Session= date.ToString();
if(trackedData == null)
trackedData = new TrackedData { Goal = 300 };
trackedData.Total += request.Amount;
Session[date.ToString()] = trackedData;
return new EntryResponse { Id = 1};
}
}
i want like this
Session[date.ToString()] = trackedData;
but an error occurs Cannot apply indexing with [] to an expression of type ServiceStack.CacheAccess.ISession
You have to inherit from ServiceStack's Service base class. You can then access the dynamic Session Bag with base.SessionBag.

C# simple linq with enum [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 6 years ago.
Improve this question
I got a enum like this:
public enum PlatForms
{
AAA=1,
BBB=2,
CCC=3
}
and a function like this:
public List<Something> GetSomething(PlatForms pf)
{
switch(pf)
{
case PlatForms.AAA:
var some = context.table1.Where(x => x.Prop == true);
break;
case PlatForms.BBB:
var some2 = context.table2.Where(x => x.Prop == true);
break;
default:
break;
}
//do convert;
//
}
The difference is table name is not same. How do I rewrite the code to make it simple?
Would something like this work?
You wouldn't want this Dictionary code to run every single time, so as soon as you have your context you could initialize a Dictionary...
var tableTranslation = new Dictionary<Platforms, Context>();
tableTranslation.Add(Platforms.AAA, context.table1);
tableTranslation.Add(Platforms.BBB, context.table2);
Then in your GetSomething() method you could just reference the Dictionary's table.
var some = tableTranslation[pf].Where(x => x.Prop == true);
//do convert
Would that do what you're looking for?

Can i create List<class> by class name? [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 6 years ago.
Improve this question
I want to do a function such that when the user selects the class name and clicks the button, it create a new List<SelectedClass>. Currently I am using a switch statement like so:
switch(Name)
case"a" : List<a> X=new List<a>();
case"b" : List<b> X=new List<b>();
Is there another method to do this?
Try it with Activator.CreateInstance (so you won't need any switch statement):
Type type = Type.GetType(Name); // Example: Type.GetType("NamespaceName.ClassName")
Type listType = typeof(List<>);
var listWithType = listType.MakeGenericType(new [] { type });
var instanceOfList = Activator.CreateInstance(listWithType);

System.NullReferenceException: ... in C# [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist
Closed 9 years ago.
Improve this question
Here's the code:
foreach (var property in this.allProperties)
{
var propertyItself = element.GetType().GetProperty(property.GetType().Name);
if (propertyItself.PropertyType != typeof(Int32)) // Here I get System.NullReferenceException: Object reference not set to an instance of an object
{ continue; }
if ((int)propertyItself.GetValue(element, null) == 0)
{ return false; }
}
I can't figure this out. If any one can or understand what is going on, please help us! Thanks in advance!!!
The propertyItself variable is null.
That means that this call is somehow incorrect:
element.GetType().GetProperty(property.GetType().Name);
I'm just guessing, but I bet this code property.GetType().Name should be property.ToString() or property.Name if that is an option.
What you're passing in is the name of the Type of the property, not its Name.
Without any debugger info there is no way to give a specific answer to what is wrong.
Try putting
if(propertyIteself!=null && propertyIteslef.PropertyType!=null && propertyItself.PropertyType != typeof(Int32))
{ continue; }
This will null check both items that could possibly be blowing up on that line.
or try this
foreach (var property in this.allProperties)
{
var propertyItself = element.GetType().GetProperty(property.GetType().Name);
if(propertyItself!=null && propertyItself.PropertyType!=null)
{
if (propertyItself.PropertyType != typeof(Int32))
{ continue; }
if ((int)propertyItself.GetValue(element, null) == 0)
{ return false; }
}
}

C# get name of object as string [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 9 years ago.
Improve this question
I have an object named 'Account' and the following code:
Account objAcc = new Account();
objAcc.Name = "Test";
The above is working fine, as expected. I now have a list of values as follows:
string props = "Name,Address,Telephone";
Now, what I want to do is see if "Name" exists in that list. I only have the object to use though (hard coding a case statement etc isn't possible as the object is dynamic), so from objAcc.Name, I somehow need to get "Name" from that, and then see if it's in the list.
Thanks in advance, I hope it's clear enough,
Dave
You can use reflection, by doing that :
var properties = objAcc.GetType().GetProperties();
foreach(var property in properties)
{
if(props.Contains(property.Name))
{
//Do you stuff
}
}
string test = objAcc.GetType().GetProperty("Name") == null ? "" : objAcc.GetType().GetProperty("Name").Name;
bool result = "Name,Address,Telephone".Split(',').Contains(test);
You may use the following method if you like:
public bool PropertyExists<T>(string propertyName, IEnumerable<string> propertyList,T obj)
{
string test = obj.GetType().GetProperty(propertyName) == null ? "" : obj.GetType().GetProperty(propertyName).Name;
bool result = propertyList.Contains(test);
return result;
}
Giannis

Categories

Resources