Today, after testing the data warehousing program and discovering that after a layer operation, calling Stopoperation, the "attempt to write or read protected memory" error occurs.
After testing, the final discovery is that the layer package contains BLOB fields, and the code does not specifically process the BLOB fields.
Workaround:
1. You need to determine the field type, and if it is a BLOB type, call the following helper method to get the BLOB value:
Imemoryblobstreamvariant Varblobstream = Objfieldvalue as imemoryblobstreamvariant;
if (Varblobstream = = null) return null;
Object ObjValue;
Varblobstream.exporttovariant (out ObjValue);
byte[] Bytesarray = ObjValue as byte[];
2. Then call the following method to assign the value:
Imemoryblobstream pmbs = new Memoryblobstreamclass ();
Imemoryblobstreamvariant Varblobstream = (imemoryblobstreamvariant) pmbs;
Object objvalue = Bytesarray;
Varblobstream.importfromvariant (ObjValue);
Pfeature.set_value (Posfield, Varblobstream);
From: http://www.cnblogs.com/ITGIS/archive/2013/01/12/2857758.html
Arcengine How to assign a value to a BLOB field