|
-------------------------------------A.W.Surveys----------------------------------
Hey Guyz,
wanna earn 100$ in 7 days......free to join
Here I am going to give you the link of that site which
will make you to earn 100$ in just 7 to 10 days.....with very ease.........
What you have to do is that visit that site and signup there and there are few earning opportunities ........you just have to fill them out............It will make you to earn 30$ in a single day............
http://www.AWSurveys.com/HomeMain.cfm?RefID=purshottam
A new opportunity is waiting for you .......Don't miss it..........
thanxs for ur support...its nice to see u all working tough
http://www.AWSurveys.com/HomeMain.cfm?RefID=purshottam
---------------------------------CBclickbank--------------------------------------
Hi,
I joined CBclickbank.com affiliate program. I like this program very much. CBclickbank.com free affiliate program where you can earn $161,452.38 just by refering Your friends! Click on the link and join I want to recommend you. Please visit this link.
http://cbclickbank.com/affiliate/?r=purshottam
----------------------------------Shareapic----------------------------------------
upload any pictures and make money online
http://www.shareapic.net/ref.php?owner=purshottam
|
|
|
|
|
Die in a deep hole. F*** your referrals you prick.
|
|
|
|
|
I have never used reflection before and I have been tasked with a project to tranform object data into 1 long string for a mainframe. I am trying to use an xml document as a reference for the information need to tranform to the mainframe. Below is an example of 1 element of that XML. What I am trying to accomplish is read in the schema and use reflection to build a string. Below the XML I have what I think is correct, but can not seem to get it working. Any point in the right direction would be great. businessType always comes back null and I can't seem to get the value
<MainframeField>
<MainframeKeyword>POLNO</MainframeKeyword>
<MainframeKeywordDescription>Policy Number</MainframeKeywordDescription>
<BusinessEntityDetails>
<Namespace></Namespace>
<EntityName>HealthPlanDetails</EntityName>
<PropertyName>PolicyNumber</PropertyName>
</BusinessEntityDetails>
<MaximumLength>2</MaximumLength>
<DataType>STRING</DataType>
<IsRequired>TRUE</IsRequired>
<TransformationDetails>
<MainframeTransformationEntity></MainframeTransformationEntity>
<Namespace></Namespace>
<MethodToCall></MethodToCall>
<Inputs>
<Input></Input>
<Input></Input>
</Inputs>
</TransformationDetails>
</MainframeField>
Part of my problem is I am not sure how to set the applicationEntity.HealthPlanDetails equal to the object created using reflection to get back the value.
Code:
public static string BuildMainframeString(ApplicationEntity applicationEntity)
{
XDocument xmlMainframeOutput = XDocument.Load(@"C:\_XsdGen\Gen\Mainframexml.xml");
var mainframeOutputs = from mainframeField in xmlMainframeOutput.Descendants("MainframeField")
let mainframeKeyword = mainframeField.Element("MainframeKeyword")
let mainframeKeywordDescription = mainframeField.Element("MainframeKeywordDescription")
let businessEntityProperty = mainframeField.Element("BusinessEntityProperty")
let maximumLength = mainframeField.Element("MaximumLength")
let dataType = mainframeField.Element("DataType")
let isRequired = mainframeField.Element("IsRequired")
let businessEntityDetails = mainframeField.Element("BusinessEntityDetails")
let businessEntityNamespace = businessEntityDetails.Element("Namespace")
let businessEntityName = businessEntityDetails.Element("EntityName")
let businessEntityPropertyName = businessEntityDetails.Element("PropertyName")
let mainframeTransformationDetails = mainframeField.Element("TransformationDetails")
let mainframeTransformationEntity = mainframeTransformationDetails.Element("MainframeTransformationEntity")
let mainframeTransformationNamespace = mainframeTransformationDetails.Element("Namespace")
let mainframeTransformationEntityMethodToCall = mainframeTransformationDetails.Element("MethodToCall")
let inputs = mainframeTransformationDetails.Descendants("Input")
select new
{
MainframeKeyword = mainframeKeyword.Value,
MainframeKeywordDescription = mainframeKeywordDescription.Value,
BusinessEntityNamespace = businessEntityNamespace.Value,
BusinessEntityName = businessEntityName.Value,
BuisnessEntityPropertyName = businessEntityPropertyName.Value,
MaximumLength = maximumLength.Value,
DataType = dataType.Value,
IsRequired = isRequired.Value,
MainframeTransformationEntity = mainframeTransformationEntity.Value,
MainframeTransformationNamespace = mainframeTransformationNamespace.Value,
MainframeTransformationMethodToCall = mainframeTransformationEntityMethodToCall.Value,
Inputs = (from input in inputs
select input.Value).ToList<string>()
};
StringBuilder mainframeOutputString = new StringBuilder();
foreach (var mainframeField in mainframeOutputs)
{
string businessEntityName = mainframeField.BusinessEntityName;
string businessEntityNamespace = mainframeField.BusinessEntityNamespace;
string businessEntityPropertyName = mainframeField.BuisnessEntityPropertyName;
string mainframeTransformationEntityName = mainframeField.MainframeTransformationEntity;
string mainframeTransformationMethodToCall = mainframeField.MainframeTransformationMethodToCall;
if (businessEntityName.Length > 0)
{
Type businessType = Type.GetType(BUSINESS_ENTITY_CLASS_PATH + businessEntityName);
PropertyInfo pi = businessType.GetType().GetProperty(businessEntityPropertyName);
mainframeOutputString.Append(mainframeField.MainframeKeyword);
mainframeOutputString.Append("=");
mainframeOutputString.Append(pi.GetValue(businessType, null));
mainframeOutputString.Append(";");
}
else
{
Type mainframeType = Type.GetType(MAINFRAME_TRANFORMATION_CLASS_PATH + mainframeTransformationEntityName);
MethodInfo mi = mainframeType.GetMethod(mainframeTransformationMethodToCall);
mainframeOutputString.Append(mainframeField.MainframeKeyword);
mainframeOutputString.Append("=");
mainframeOutputString.Append(mi.Invoke(mainframeType, null));
mainframeOutputString.Append(";");
}
}
|
|
|
|
|
Why are you trying to use reflection to do this? It seems like this would be much easier using a simple XmlReader (or XmlDocument and XPath) and a StringBuilder object.
Scott Dorman Microsoft® MVP - Visual C# | MCPD
President - Tampa Bay IASA
[ Blog][ Articles][ Forum Guidelines] Hey, hey, hey. Don't be mean. We don't have to be mean because, remember, no matter where you go, there you are. - Buckaroo Banzai
|
|
|
|
|
Scott,
I was trying to avoid having to write a unique method for every mainframe keyword. Maybe I should clarify. I am writing a web service which takes in a large xml structure that represents an application. Then I parse that out into business entities that I can manipulate. Once that is done, I need to take my objects and create the long string. I don't want to have to create a method for each keyword that points to the businessEntity and the correct property each time. Maybe reflection isn't the correct path, but I am not sure how to build the output dynamically because it can be any number of object types. Hope this makes sense, if you can suggest a better route I can look into that as well.
Thanks,
|
|
|
|
|
|
Speaking purely from memory, you understand. (I'm not near my dev machine) My recollection is that you just set the forms' region to be a region you create in the shape you want. No need for transparency.
Henry Minute
If you open a can of worms, any viable solution *MUST* involve a larger can.
|
|
|
|
|
Evening All,
A quick question on Data grid views. I want to be able to format the row depending on the dataset that is returned to me. e.g. 1 = red 2 = green 3 = purple.
This is for a winform application.
Thanks in advance
Michael
|
|
|
|
|
What is the question?
Have you tried anything at all? Do you just expect code?
|
|
|
|
|
I have tried to look at the formatting of cells but want to change the background displaced based on the data that in datatable that will be used as the data source for the datagrid view.
|
|
|
|
|
|
Hi all,
We have to create one datarow to insert a row in the data table.
but here i have to insert row by row dynamically(one by one row) in to the datatable,
but how to do that, am i need to create that much of datarow to insert the number of rows??
waiting for your reply
|
|
|
|
|
listen,
do you have some kind of database?
if you create a datatable and add some rows in runtime mode, when you quit the application all data will be lost you know?
Create a database; sql server (or xml) code your way to the database and edit and display data in C# application.
nelsonpaixao@yahoo.com.br
trying to help & get help
|
|
|
|
|
hi mr nelson,
thanks for your reply,
but the thing here is i am not going to do anything with that data, i have to spool the data's in the datatable and at once i will print that in the report, i dont need to save that one.
so can you please tell me how to load rows(data's) dynamically in the datatable
??
waiting for reply
|
|
|
|
|
Try googling on something like 'load data into datatable c#'
work through the hits till you find something you like, then try to do it.
IF you get stuck, after you have written some code, then come back with a specific problem. With code snippets so that we can see what it is you are doing.
What is this! Homework'R'Us?
Henry Minute
If you open a can of worms, any viable solution *MUST* involve a larger can.
|
|
|
|
|
drop the mr,
like in runtime? type create datatable in runtime in google, i always dont remember codes.
but data will be lost after the application quit.
add crystareportview to project, a crystal report, a dataset scheme.
read before making that. you have some things to do first...
nelsonpaixao@yahoo.com.br
trying to help & get help
|
|
|
|
|
There are two ways to initialize members in a C# class, via constructor:
class MyClass
{
private int Member;
public MyClass()
{
Member = 0;
}
} or through member initialization:
class MyClass
{
private int Member = 0;
} My question: Are there problems / benefits of one approach vs. another?
From what I can see, it's a wash if you only have a default constructor. If you have multiple constructors, member initialization is preferable for those members that are set to the same value by all constructors.
Software Zen: delete this;
|
|
|
|
|
Gary,
If the class calls Finalize, then using member initialization is certainly the right way to go. The reason being, if there is an error in the constructor, and Finalize is called, then the state of the fields could come into play. Using member initialization in this case means that you know your fields are valid, so you won't have issues if finalize is called following failed object construction.
D.
Last modified: 12mins after originally posted --
|
|
|
|
|
Douglas Troy wrote: Using member initialization in this case means that you know your fields are valid, so you won't have issues if finalize is called following failed object construction.
How so?
static class Win32
{
public static IntPtr OpenHandle() { return IntPtr.Zero; }
public static void CloseHandle(IntPtr ptr) { }
}
class TestClass
{
IntPtr h1 = Win32.OpenHandle();
~TestClass()
{
Win32.CloseHandle(h1);
}
}
If OpenHandle throws an exception, I would expect the finalizer to still run, with h1 having the default value.
|
|
|
|
|
FXCop will trigger an "issue" if you do the 2nd thing, but FXCop is, after all, just a style guide and most of what it chokes/pukes on can safely be ignored. I tend to use method #2 in your examples.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
I don't think it really matters, especially in the case of setting variables to their default values (which is recommended to not do). If you have multiple constructors, you can set the initial values in your simplest constructor and then use constructor chaining. In your first example, you actually end up with 3 additional lines of IL in the constructor to handle loading the arguement on to the evaluation stack (which it already does), then loading the 0 as an integer on to the evaluation stack, and then replacing the value stored in the "Member" field with the new value.
Scott Dorman Microsoft® MVP - Visual C# | MCPD
President - Tampa Bay IASA
[ Blog][ Articles][ Forum Guidelines] Hey, hey, hey. Don't be mean. We don't have to be mean because, remember, no matter where you go, there you are. - Buckaroo Banzai
|
|
|
|
|
Right. Also if initialization of any kind is put into the body of the class, it will be injected into every constructor when compiled to IL so it will tend to bloat up classes with multiple constructors. If you're a real performance nazi you'd have to take nuggets like that into consideration because the JITer will inline code under 32 bytes. See Here.
Scott P.
"Simplicity carried to the extreme becomes elegance."
-Jon Franklin
|
|
|
|
|
carbon_golem wrote: JITer will inline code under 32 bytes.
Great point.
Scott Dorman Microsoft® MVP - Visual C# | MCPD
President - Tampa Bay IASA
[ Blog][ Articles][ Forum Guidelines] Hey, hey, hey. Don't be mean. We don't have to be mean because, remember, no matter where you go, there you are. - Buckaroo Banzai
|
|
|
|
|
carbon_golem wrote: it will be injected into every constructor when compiled to IL so it will tend to bloat up classes with multiple constructors.
Even if the constructors are chained with this(...) ?
|
|
|
|
|
No. If you chain constructors, the compiler is smart enough to put members initialized in the class body into the last chain target. I went back through and verified this. Here is some sample code for you to compile and run ILDasm on. Car has chained constructors, where Truck does not. Truck's constructors all get the initialization code for the CultureInfo member, where Car has the initialization for CultureInfo in the constructor that takes 2 args.
using System;
using System.Globalization;
namespace ConstructorChainKata {
class Program {
static void Main(string[] args) {
}
}
public enum Market {
Production,
Concept,
Military,
Custom,
Armored
}
public class Car {
private String manufacturer;
private Market market;
private CultureInfo targetLocale = new CultureInfo("en-US");
public Car(String manuf) :this(manuf, Market.Production) {
}
public Car(String manuf, Market markt) {
manufacturer = manuf;
market = markt;
}
}
public class Truck {
private String manufacturer;
private Market market;
private CultureInfo targetLocale = new CultureInfo("en-US");
public Truck(String manuf) {
manufacturer = manuf;
market = Market.Production;
}
public Truck(String manuf, Market markt) {
manufacturer = manuf;
market = markt;
}
}
}
Scott P
"Simplicity carried to the extreme becomes elegance."
-Jon Franklin
|
|
|
|