|
This one's the answer I was looking for. Thanks a lot for the help.
|
|
|
|
|
Didn't know that values from the app.config are strongly typed. There are all coming as string, or?
|
|
|
|
|
No, they're not strongly typed, otherwise it would have been much easier. They all come as a string.
|
|
|
|
|
Ok. So i'm stuck here. How does you know if the app.config entry is an integer? Let me say it this way, somewhere in your app you have to consume the app.config entry in a typed way. Exactly at this point you know what you were expecting from the config file. What if you put an entry to the app.config with value 32, parsing the whole as int, but you are expecting a string in your app?
What do you want to achieve exactly?
Regards
Sebastian
|
|
|
|
|
I want to have the following entry in my app.config file:
...
...
1: <Parameter type="System.Int32" value="32" />
2: <Parameter type="System.String value="Hallo" />
Ok. Now the "value" attribute of the "Parameter" tag will always be a string value when retrieved from the app.config.(that's how the Custom Configuration files were written). Now by looking at the "type" attribute, I want to cast/convert the value of the "value"-attribute to the type specified by the "type" attribute. Something like the following:
So for line 1: the following values will exist.
param.type = "System.Int32"; (String value);
param.value = "32"; (Also a string value as retrieved from app.config.
For line 2: it will be:
param.type = "System.String";
param.value = "Hallo"
Now what I'd like to do is something that would be similar to the following code:
param.type myVariableType = (param.type)param.value;
Where I have a type and cast the value I recieved from the app.config to that type.
(Look in one of the previous threads by Daniel Gruwald. I got an answer for this problem. It was to use the following code.
TypeDescriptor.GetConverter(Type.GetType(param.type)).ConvertFromInvariantString(param.value);
|
|
|
|
|
Am I missing something, or the example below is really impossible.
The class called FirstImplementation derives from GenericClass , and the generic parameter used, FirstClass derives from Base . So from the outside I should be able to cast FirstImplementation to GenericClass<base></base>
public class Base
{
public int X { get; set; }
}
public class FirstClass : Base
{
public int Y { get; set; }
}
public abstract class GenericClass<T> where T: Base
{
public T Item { get; set;}
}
public class FirstImplementation : GenericClass<FirstClass>
{
public GenericClass<Base> Cast()
{
return (GenericClass<Base> )this;
}
}
modified on Thursday, January 15, 2009 6:18 AM
|
|
|
|
|
That's not how generics work unfortunately. You can't do this
GenericClass<firstclass> var1;
GenericClass<base> var2;
var2 = (GenericClass<base> )var1;
Your var1 & var2 variables are different types. One is a generic class using base as it's type member, and one is using FirstClass as it's type member, you can't cast one to the other, just because FirstClass is a subclass of Base. var1 isn't a subclass of var2. What generics effectively do is define a new class using the type you specified. So it effectively equates to this:
public class GenericClassUsingBase
{
public Base Item
{
get;
set;
}
}
public class GenericClassUsingFirstClass
{
public FirstClass Item
{
get;
set;
}
}
You'll see if you try and cast these you can't do that either:
GenericClassUsingFirstClass var1;
GenericClassUsingBase var2;
var2 = (GenericClassUsingBase)var1;
They are basically different types, just because they are using type parameters that subclass each other doesn't make them subclasses of themselves.
Simon
|
|
|
|
|
Thanks. Great explanation.
I guess I'm not the only one who bumps into this. Any known workarounds? Or rethink the whole implementation from scratch?
|
|
|
|
|
gnjunge wrote: Any known workarounds?
That kind of depends what you are trying to do.
If you are trying to treat generics of a class tree as a tree themselves, I suspect you are slightly misusing the idea of generic classes. You might be better defining explicit classes instead of generic ones, and then having them all inherit from the same interface or abstract class instead if you need that.
What is it you are trying to archive?
Simon
|
|
|
|
|
For now I made my own work around.
The code has changed multiple times, and I'm sure there was a reason for using generics. Have to check it when I have time.
|
|
|
|
|
C# 4.0 brings generic covariance[^]. While the current code will still not compile, inserting an interface will get you going.
public interface IGenericClass<out t=""> where T : Base { public T Item {get; } }
public abstract class GenericClass<t> : IGenericClass<t> {...}
var derived = new FirstImplementation();
IGenericClass<Base> baseInterface = derived;
</t></t></out>
C# 4.0 is still in CTP stage though.
|
|
|
|
|
|
Hi,
I want to add Rows bottom of the Grid but for some reason it goes here and there or always last but one.
MyGrid.Rows.Add();
Thanks
|
|
|
|
|
why do you want to add a row to the DGV?
You only get that output if you add records to your database, refresh, and display the data in DGV.
You have to remember that you dont edit the DGV, you edit your database!
You use the DGV to display data.
You can add and delete rows but not like you ask here, got it?
nelsonpaixao@yahoo.com.br
trying to help & get help
|
|
|
|
|
Anyway at last i got the solution !!
I just built a Data Table that is assigned to Data Grid as a Data Source so whenever i make changes in Data Table things are getting affected.
|
|
|
|
|
Hi all,
I want to call a crystal report from C# application
can i know the syntax and process please
waiting for your reply.
|
|
|
|
|
Hema Bairavan wrote: process please
Go to a bookstore and get a C# and crystal report book.
|
|
|
|
|
mr Navneeth,
I KNOW TO DO THAT
, it should be done by using the viewer,
but it is not working?
do you know how to do that?
|
|
|
|
|
Well why don't you post some code then.
Say what you expect it to do and what it actually does.
Do you get errors?
If so where and what errors?
...
The way you posed your question is open for the interpretation that you are asking us to completely explain how to show a CR with code and all.
At the very least you have to show that you actually tried it on your own.
|
|
|
|
|
Hema Bairavan wrote: I KNOW TO DO THAT
Well, what book did you buy?
Here is a walkthrough, enjoy
I are troll
|
|
|
|
|
it not hard, i thought it was. Almost the same way you do when display data in DGV.
You have to remember that the DGV accepts any kind of dataset regardless of the data scheme, you know? with CR you have to create a dataset (design time) that has a scheme that is 100% of the output of your Store Procedure (i trigger SP).
If you know to display data in a DGV from a triggered procedure is the same.
Use the cristalreportviewer like the DGV.
add cristalreportviewer to application, create cristalreport and dataset in designtime.
i assually run DGV and cristalreportviewer together
i can post the little code later, but is not about it.
nelsonpaixao@yahoo.com.br
trying to help & get help
|
|
|
|
|
Who has the code generator? Can generate C # code
|
|
|
|
|
1SmartCoder is an object to simple mapping (O/R mapping) code generation tool that lets you map and generate well designed Asp.net business, data objects and web pages.
Map objects and embed SQL and business rules
Generate .NET components and DotNetNuke Module in C# with a clean design
Customizable code generator with powerful Template IDE
Extendable special business rules generation with Tag in mapped objects and their attributes.
Support Microsoft Visual Studio 2005 and DotNetNuke 4.x
Do round trip development without losing any of your code changes
Generate common Membership web application with Department, User, Group/Role, Resource/Permission managetment, with it you can focus on the business logic development without trouble permission management.
more: http://www.1smartengine.com
|
|
|
|
|
tz_soul wrote: Who has the code generator?
The (working) brain.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
The computer.
Of one Essence is the human race
thus has Creation put the base
One Limb impacted is sufficient
For all Others to feel the Mace
(Saadi )
|
|
|
|