XmlSerializer serialize = new XmlSerializer(typeof(CNConf)); using (XmlReader xmlReader = XmlReader.Create(configFile)) { _cnConf = serialize.Deserialize(xmlReader) as CNConf; _cnConf.Init(); } [XmlRoot("CN")] public class CN { [XmlAttribute("Name")] public string Name { get; set; } [XmlElement("CN")] public List<CN> CNs{get;set;} [XmlIgnore] List<string> _CNNameList; public sealed class Manager { private readonly static Manager _instance = new Manager(); CNConf _cnConf; public CNConf mCNConf { get { return _cnConf; } } public static Manager Current { get { return _instance; } } Json DataContractJsonSerializer serializer = new DataContractJsonSerializer(datatype); using (MemoryStream ms = new MemoryStream()) { serializer.WriteObject(ms, securityInfo); ms.Seek(0, SeekOrigin.Begin); using (TextReader tr = new StreamReader(ms)) { context.Response.Write(tr.ReadToEnd()); } } return; JAVA import java.io.Serializable; class TestSerial implements Serializable FileOutputStream fos = new FileOutputStream("temp.out"); serial{ ObjectOutputStream oos = new ObjectOutputStream(fos); TestSerial ts = new TestSerial(); oos.writeObject(ts); oos.flush(); oos.close(); } deserial{ FileInputStream fis = new FileInputStream("temp.out"); ObjectInputStream oin = new ObjectInputStream(fis); TestSerial ts = (TestSerial) oin.readObject(); } C++ MFC .h struct Node { int index; std::vector <int> num; } class CatalogNode : public CObject { DECLARE_SERIAL(CatalogNode ) public: int id; std::string name std::vector <Node> list; public: CatalogNode(void); ~CatalogNode(void); void Serialize(CArchive&ar); // 序列化函数 }; .cpp IMPLEMENT_SERIAL(CatalogNode ,CObject,0) void CatalogNode ::Serialize(CArchive &ar) { if(ar.IsStoring())//数据写操作 { ar<<id; ar<<name ; } else //数据读操作 { ar>>id; ar>>name ; } CObject:: Serialize(ar); } boost #include <fstream> // include headers that implement a archive in simple text format #include <boost/archive/text_oarchive.hpp> #include <boost/archive/text_iarchive.hpp> / // gps coordinate // // illustrates serialization for a simple type // class gps_position { private: friend class boost::serialization::access; // When the class Archive corresponds to an output archive, the // & operator is defined similar to <<. Likewise, when the class Archive // is a type of input archive the & operator is defined similar to >>. template<class Archive> void serialize(Archive & ar, const unsigned int version) { ar & degrees; ar & minutes; ar & seconds; } int degrees; int minutes; float seconds; public: gps_position(){}; gps_position(int d, int m, float s) : degrees(d), minutes(m), seconds(s) {} }; int main() { // create and open a character archive for output std::ofstream ofs("filename"); boost::archive::text_oarchive oa(ofs); // create class instance const gps_position g(35, 59, 24.567f); // write class instance to archive oa << g; // close archive ofs.close(); // ... some time later restore the class instance to its orginal state // create and open an archive for input std::ifstream ifs("filename", std::ios::binary); boost::archive::text_iarchive ia(ifs); // read class state from archive gps_position newg; ia >> newg; // close archive ifs.close(); return 0; } 反射 Type datatype = Type.GetType(datatypeName); //class name,dll name MethodInfo methodInfo = datatype.GetMethod("Get", methodParamType); JAVA Class<?> cls = Class.forName(className); if(cls!=null){ Constructor<?> con = cls.getConstructor(Context.class ); if(con!=null){ v = (MSView) con.newInstance(new Object[] {context}); } } Class clEdiBkcntr = objCntr.getClass(); Method method; method = clEdiBkcntr.getMethod("getCntrno",null); Object[] arg = new Object[0]; String cntrnoTmp = ""; cntrnoTmp = (String)method.invoke(objCntr, arg); JAVA杂笔 Nutch分布式搜索是通过rpc调用的 SEARCH = Protocol.class.getMethod ("search", new Class[] { Query.class, Integer.TYPE, String.class, String.class, Boolean.TYPE}); Object[][] params = new Object[liveAddresses.length][5]; for (int i = 0; i < params.length; i++) { params[i][0] = query; params[i][1] = new Integer(numHits); params[i][2] = dedupField; params[i][3] = sortField; params[i][4] = Boolean.valueOf(reverse); } Hits[] results = (Hits[])RPC.call(SEARCH, params, liveAddresses, this.conf); <bean id="logAdvice" class="xx.xx.xx.xx.LogInterceptor"/> <aop:config> <aop:pointcut id="newsDaoPointcut" expression="execution(public * xx.xx.xx.xx.xx.xx.getLast*(..))"/> <aop:advisor pointcut-ref="newsDaoPointcut" advice-ref="logAdvice" order="2" /> </aop:config>