|
Oh bummer
<br />
{"Type 'XXXXX.MyAccount' cannot be marshaled as an unmanaged structure; no meaningful size or offset can be computed."}<br />
I suspect this is because MyAccount is actually a complex hierarchy containing a child collection...
<br />
class MyAccount<br />
{<br />
...<br />
public List<Invoicesgt; GroupList;<br />
}<br />
Eekkk... I was going to wire down an array of accounts (i.e. MyAccount[]) but now can't even wire down one single MyAccount... I desparation I tried this:
<br />
using (System.IO.MemoryStream stream = new System.IO.MemoryStream())<br />
{<br />
BinaryFormatter formatter = new BinaryFormatter();<br />
formatter.Serialize(stream, result);<br />
byte[] BinAcct = stream.ToArray());<br />
}<br />
But even then I ran into runtime exception, complaint was that class is not marked serializable (Although marked DataContract), looks like I got lucky with
<br />
DataContractSerializer dataContractSerializer = new DataContractSerializer(Acct.GetType());<br />
using (MemoryStream memoryStream = new MemoryStream())<br />
{<br />
dataContractSerializer.WriteObject(memoryStream, Acct);<br />
btAccountSet = new byte[memoryStream.Length];<br />
Array.Copy(memoryStream.GetBuffer(), btAccountSet, btAccountSet.Length);<br />
}<br />
This finally get the job done (only serialization part, still stuck during deserialization).
<br />
1. Serialize side:<br />
DataContractSerializer serial = new DataContractSerializer(Acct.GetType());<br />
using (MemoryStream memoryStream = new MemoryStream())<br />
{<br />
serial.WriteObject(memoryStream, oAcct);<br />
btPayload = new byte[memoryStream.Length];<br />
Array.Copy(memoryStream.GetBuffer(), btPayload, btPayload.Length);<br />
}<br />
<br />
2. Deserialize side: <br />
byte[] raw = (byte[]) GetPayload();<br />
serial = new DataContractSerializer(typeof(MyAccount));<br />
using (MemoryStream memoryStream = new MemoryStream(raw))<br />
{<br />
memoryStream.Seek(0, SeekOrigin.Begin);<br />
oAcct = (MyAccount) serial.ReadObject(memoryStream);<br />
}<br />
So, all good sending a single object, but still need to attempt sending/serializing a list of MyAccount (with subclasses)
Thanks
modified on Saturday, August 21, 2010 1:46 AM
|
|
|
|
|
Were you able to fix it??
With the sample code you've posted I was not able to find the problem.
|
|
|
|
|
hey yes, many thanks, working now and I just dodged a tight deadline! (Code I posted actually works, forgot to remove "Bummer" as initially when I posted the reply I was still having problem)
Thanks very much!
|
|
|
|
|
I have mp2 video file withount sound (mv2) and wav file.
I want to create new file containning them both.
i search over the web code for multiplexing mv2 and wav and i found nothing.
if anyone framiliar with an open source code or have General direction for doing that
it sure can help a lot
Thanks in advance
|
|
|
|
|
Why not simply drive FFMpeg[^]? It rocks, is stable, open-source and completely free.
/ravi
|
|
|
|
|
Hi guys,
I need help on how to obtain longitude and latitude location on my HTC advantage X7510. I have used the code sample provided by Microsoft and it did not work.Any one with an idea on how to make this work or on how I could build my own GPS apps from scratch?
Bravegee
|
|
|
|
|
Repost with Q & A - don't post the same in multiple places, it just duplicates work and annoys people.
Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together.
|
|
|
|
|
Are you sure the example doesn't work? It may take some time for the GPS device to get a solid fixture etc. Do you receive an error? What's the reason why you think the code 'doesn't work'?
|
|
|
|
|
Thank you for responding.
The code does not give a GPS location however long I wait to get it.I used thesame codes on other device and it worked. I think the issue is with the device. Any clue why the code is not working on my HTC Advantage X7501 model?
Thanks a lot.
|
|
|
|
|
It would be so kind of you to provide an answer that could help me solve the problem with my application.
|
|
|
|
|
If I have an anonymous delegate can I do this:
foo bar = new foo();
bar.DoStuff += (s, e) =>
{
SomeStuff();
bar = null;
MoreStuff();
}
|
|
|
|
|
Even if you could (and I haven't tested it but I really hope you can't) from the point of the poor sod who would have to maintain that code, I would hunt you down and destroy you.
Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together.
|
|
|
|
|
I know, it's horrible - I am just curious if it's permissable because it seems to work (although I know that's no guarantee it will always work) - as for maintenance it's perfectly maintainable.
|
|
|
|
|
RugbyLeague wrote: as for maintenance it's perfectly maintainable.
Deleting the object that raised the event during the event handler is maintainable?
Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together.
|
|
|
|
|
If it's permissable, valid code it is - if it isn't it is still maintainable but wrong.
|
|
|
|
|
Just because you can do something, doesn't mean you should...
Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together.
|
|
|
|
|
A modification would be
Just because you can wear something doesn't mean you should
I know the language. I've read a book. - _Madmatt
|
|
|
|
|
Mark Nischalke wrote:
Just because you can wear something doesn't mean you should
I thought I was far enough from my wife.
|
|
|
|
|
In this case if it is correct and valid then I don't mind it - i just need to know if it's correct and valid.
|
|
|
|
|
I don't have my compiler open, but that should work. The lambda type will get the delegate type inferred by the compiler and will get assigned as a delegate instance to DoStuff. "bar" will then be captured and then assigned null. Not sure what you're trying to accomplish, but that code should run fine without any compilation errors or runtime errors.
|
|
|
|
|
Essentially I was thinking of using it within BackgroundWorker.RunWorkerCompleted - I wanted to put in a call to CommandManager.InvalidateRequerySuggested - one of the commands in its CanExecute method tests if the worker is null.
|
|
|
|
|
I have a dgv that's bound to a table tblQuoteItems.
One of the columns of the dgv is ItemID which is a combobox column.
Its value is obtained from ItemID field of tblQuoteItems.
Before binding the dgv, the ItemID column is populated from
tblItems table containing fields ItemID and Item.
The ItemID column of the dgv has ItemID as valuemember and Item as
displaymember.
Now is it possible to rebind only the ItemID column while keeping the
dgv state intact i.e. without rebinding the dgv?
For example I open up a lookup form and modify tblItems table,
then I want the effect to be acted upon the ItemID column of the dgv
without affecting the state of the dgv.
I recalled BindDGVComboBox method defined underneath after modifying
the values of tblItems but of no avail. Please help.
My code follows:
SqlConnection con;
string strSql;
SqlDataAdapter da;
DataTable dt;
SqlCommandBuilder cb;
BindingSource bs = null;
void PopulateDgv()
{
LineID = new DataGridViewTextBoxColumn();
QuoteID = new DataGridViewTextBoxColumn();
ItemID = new DataGridViewComboBoxColumn();
LookupItems = new DataGridViewButtonColumn();
Quantity = new DataGridViewTextBoxColumn();
UnitPrice = new DataGridViewTextBoxColumn();
LineTotal = new DataGridViewTextBoxColumn();
dgvItems.Columns.Clear();
dgvItems.DataSource = null;
dgvItems.Columns.AddRange(new DataGridViewColumn[] {LineID, QuoteID, ItemID, LookupItems, Quantity, UnitPrice, LineTotal });
LineID.Name = "LineID";
LineID.DataPropertyName = "LineID";
LineID.Visible = false;
QuoteID.Name = "QuoteID";
QuoteID.DataPropertyName = "QuoteID";
QuoteID.Visible = false;
ItemID.Name = "ItemID";
ItemID.DataPropertyName = "ItemID";
LookupItems.Name = "LookupItems";
LookupItems.DataPropertyName = "LookupItems";
LookupItems.DefaultCellStyle.NullValue = "...";
LookupItems.Resizable = DataGridViewTriState.False;
Quantity.Name = "Quantity";
Quantity.DataPropertyName = "Quantity";
UnitPrice.Name = "UnitPrice";
UnitPrice.DataPropertyName = "UnitPrice";
LineTotal.Name = "LineTotal";
LineTotal.DataPropertyName = "LineTotal";
LineTotal.ReadOnly = true;
BindDGVComboBox(ItemID, "Select ItemID,Item From tblShopItems Order By ItemID", "ItemID", "Item");
if (bs == null) { bs = new BindingSource(); }
if (dt == null) { dt = new DataTable(); }
strSql = "Select LineID,QuoteID,ItemID,'...' As LookupItems,Quantity,UnitPrice,LineTotal From tblShopQuotesItems Where QuoteID=" + Globals.Val(Tag);
da = CreateDataAdapter(strSql);
cb = new SqlCommandBuilder(da);
dt.Locale = System.Globalization.CultureInfo.InvariantCulture;
dt.Clear();
da.Fill(dt);
bs.DataSource = dt;
dgvItems.DataSource = bs;
}
void BindDGVComboBox(DataGridViewComboBoxColumn objComboBox, string strQuery, string strValueMember, string strDisplayMember)
{
DataSet ds = new DataSet();
ds = CreateDataSet(strQuery);
DataView dv = ds.Tables["dtDataTable"].DefaultView;
objComboBox.DataSource = null;
objComboBox.DataSource = dv;
if (strValueMember != null) { objComboBox.ValueMember = strValueMember; }
objComboBox.DisplayMember = strDisplayMember;
}
DataSet CreateDataSet(string strQuery)
{
DataSet ds = new DataSet();
SqlDataAdapter da = CreateDataAdapter(strQuery);
SqlCommandBuilder cb = new SqlCommandBuilder(da);
da.Fill(ds, "dtDataTable");
return ds;
}
SqlDataAdapter CreateDataAdapter(string strQuery)
{
SetConnection();
SqlDataAdapter daAdapter = new SqlDataAdapter(strQuery, con);
CloseConnection();
return daAdapter;
}
void SetConnection()
{
if (con == null) { con = new SqlConnection(GetConnectionString()); }
if (con.State == ConnectionState.Closed) { con.Open(); }
}
string GetConnectionString()
{
string strConn;
strConn = "Persist Security Info=False;User ID=sa;Password=;Initial Catalog=TestDB;Data Source=MyServer";
return strConn;
}
|
|
|
|
|
Hi All,
My requirement is to capture all the Sql server logins.Is it possible to capture through DOT NET?.Please Suggest me if any option available.
Thanks in advance
MEK
|
|
|
|
|
You should be able to get the login names from one of the systems tables I believe; however you will not be able to get the passwords. What is your reasoning for this? I think most here will be very suspicious of such a request.
I know the language. I've read a book. - _Madmatt
|
|
|
|
|
Actually i want to keep track of all the user name and password in any file or what ever?
so that it can get the password changed when ever I've changed my password in Sql server.
I do not want store the password.Just i want access it.
Is Is possible?
thanks once again..
|
|
|
|