新版本中对 Grove的Model生成做了支持

新版本针对Grove进行了支持, 支持的效果如下:

此种风格主要针对字符串内存序列化的使用。 对不定长字段有所局限。

注意:这仅仅是一个简单的支持, 和Grove的开发者无任何关系。 仅仅是方便一些使用Grove的朋友和Keel与Grove结合使用的人。

 

 

ContractedBlock.gif ExpandedBlockStart.gif Code
//By KeelKit.Generator.Grove   CreateDate:2009-06-10 19:16:33
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Text;
using System.Runtime.InteropServices;
using Grove.ORM;
namespace ClassLibrary2
{
    
/// 
    
///表名称tb_codsoftitem,字段数目12
    
/// 

    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
    
public struct MSG_TB_CODSOFTITEM
    {
        [MarshalAs(UnmanagedType.ByValArray, SizeConst 
=32)]
        
public byte[] CodFileMd5;
        [MarshalAs(UnmanagedType.ByValArray, SizeConst 
=50)]
        
public byte[] FullName;
        [MarshalAs(UnmanagedType.ByValArray, SizeConst 
=50)]
        
public byte[] SoftName;
        [MarshalAs(UnmanagedType.ByValArray, SizeConst 
=50)]
        
public byte[] Version;
        [MarshalAs(UnmanagedType.ByValArray, SizeConst 
=10)]
        
public byte[] Size;
        [MarshalAs(UnmanagedType.ByValArray, SizeConst 
=23)]
        
public byte[] Created;
        [MarshalAs(UnmanagedType.ByValArray, SizeConst 
=10)]
        
public byte[] Score_Good;
        [MarshalAs(UnmanagedType.ByValArray, SizeConst 
=10)]
        
public byte[] Score_Bad;
        [MarshalAs(UnmanagedType.ByValArray, SizeConst 
=10)]
        
public byte[] Money;
        [MarshalAs(UnmanagedType.ByValArray, SizeConst 
=23)]
        
public byte[] UploadDateTime;
        [MarshalAs(UnmanagedType.ByValArray, SizeConst 
=50)]
        
public byte[] PhoneTypes;
        [MarshalAs(UnmanagedType.ByValArray, SizeConst 
=50)]
        
public byte[] PhoneOS;
    }
//tb_codsoftitem
    [DataTable("tb_codsoftitem")]
    
public class tb_codsoftitem
    {
        MSG_TB_CODSOFTITEM  _MSG_TB_CODSOFTITEM;
        
public tb_codsoftitem(MSG_TB_CODSOFTITEM ___MSG_TB_CODSOFTITEM)
        {
            _MSG_TB_CODSOFTITEM 
= ___MSG_TB_CODSOFTITEM;
        }
        
public tb_codsoftitem()
        {
            Parse(
"".PadRight(GetLenght(), ' '));
        }
        
public tb_codsoftitem(string s)
        {
            Parse(s);
        }
        
public int GetLenght()
        {
            
return Marshal.SizeOf(_MSG_TB_CODSOFTITEM);
        }
          
//由一个string隐式构造一个tb_codsoftitem 
          public static implicit operator tb_codsoftitem(string  s)
         {
             
return new tb_codsoftitem(s);
          }
           
//由一个tb_codsoftitem显式返回一个string
           public static explicit operator string (tb_codsoftitem ret)
           {
               
return  ret.ToString() ;
           }
        [DataField(
"CodFileMd5")]
        
public string  CodFileMd5
        {
            
get {
                
return Encoding.GetEncoding(936).GetString(_MSG_TB_CODSOFTITEM.CodFileMd5);
            }
            
set {
                _MSG_TB_CODSOFTITEM.CodFileMd5
= Encoding.GetEncoding(936).GetBytes(value.PadRight(32,' '));
            }
        }
        [DataField(
"FullName")]
        
public string  FullName
        {
            
get {
                
return Encoding.GetEncoding(936).GetString(_MSG_TB_CODSOFTITEM.FullName);
            }
            
set {
                _MSG_TB_CODSOFTITEM.FullName
= Encoding.GetEncoding(936).GetBytes(value.PadRight(50,' '));
            }
        }
        [DataField(
"SoftName")]
        
public string  SoftName
        {
            
get {
                
return Encoding.GetEncoding(936).GetString(_MSG_TB_CODSOFTITEM.SoftName);
            }
            
set {
                _MSG_TB_CODSOFTITEM.SoftName
= Encoding.GetEncoding(936).GetBytes(value.PadRight(50,' '));
            }
        }
        [DataField(
"Version")]
        
public string  Version
        {
            
get {
                
return Encoding.GetEncoding(936).GetString(_MSG_TB_CODSOFTITEM.Version);
            }
            
set {
                _MSG_TB_CODSOFTITEM.Version
= Encoding.GetEncoding(936).GetBytes(value.PadRight(50,' '));
            }
        }
        [DataField(
"Size")]
        
public Int32  Size
        {
            
get {
                
return   Int32.Parse(Encoding.GetEncoding(936).GetString(_MSG_TB_CODSOFTITEM.Size));
            }
            
set {
                _MSG_TB_CODSOFTITEM.Size
= Encoding.GetEncoding(936).GetBytes(value.ToString().PadRight(10,' '));
            }
        }
        [DataField(
"Created")]
        
public DateTime  Created
        {
            
get {
                
return  DateTime.Parse(Encoding.GetEncoding(936).GetString(_MSG_TB_CODSOFTITEM.Created));
            }
            
set {
                _MSG_TB_CODSOFTITEM.Created
= Encoding.GetEncoding(936).GetBytes(value.ToString().PadRight(23,' '));
            }
        }
        [DataField(
"Score_Good")]
        
public Int32  Score_Good
        {
            
get {
                
return   Int32.Parse(Encoding.GetEncoding(936).GetString(_MSG_TB_CODSOFTITEM.Score_Good));
            }
            
set {
                _MSG_TB_CODSOFTITEM.Score_Good
= Encoding.GetEncoding(936).GetBytes(value.ToString().PadRight(10,' '));
            }
        }
        [DataField(
"Score_Bad")]
        
public Int32  Score_Bad
        {
            
get {
                
return   Int32.Parse(Encoding.GetEncoding(936).GetString(_MSG_TB_CODSOFTITEM.Score_Bad));
            }
            
set {
                _MSG_TB_CODSOFTITEM.Score_Bad
= Encoding.GetEncoding(936).GetBytes(value.ToString().PadRight(10,' '));
            }
        }
        [DataField(
"Money")]
        
public Int32  Money
        {
            
get {
                
return   Int32.Parse(Encoding.GetEncoding(936).GetString(_MSG_TB_CODSOFTITEM.Money));
            }
            
set {
                _MSG_TB_CODSOFTITEM.Money
= Encoding.GetEncoding(936).GetBytes(value.ToString().PadRight(10,' '));
            }
        }
        [DataField(
"UploadDateTime")]
        
public DateTime  UploadDateTime
        {
            
get {
                
return  DateTime.Parse(Encoding.GetEncoding(936).GetString(_MSG_TB_CODSOFTITEM.UploadDateTime));
            }
            
set {
                _MSG_TB_CODSOFTITEM.UploadDateTime
= Encoding.GetEncoding(936).GetBytes(value.ToString().PadRight(23,' '));
            }
        }
        [DataField(
"PhoneTypes")]
        
public string  PhoneTypes
        {
            
get {
                
return Encoding.GetEncoding(936).GetString(_MSG_TB_CODSOFTITEM.PhoneTypes);
            }
            
set {
                _MSG_TB_CODSOFTITEM.PhoneTypes
= Encoding.GetEncoding(936).GetBytes(value.PadRight(50,' '));
            }
        }
        [DataField(
"PhoneOS")]
        
public string  PhoneOS
        {
            
get {
                
return Encoding.GetEncoding(936).GetString(_MSG_TB_CODSOFTITEM.PhoneOS);
            }
            
set {
                _MSG_TB_CODSOFTITEM.PhoneOS
= Encoding.GetEncoding(936).GetBytes(value.PadRight(50,' '));
            }
        }
        
public override string ToString()
        {
          
int rawsize = Marshal.SizeOf(_MSG_TB_CODSOFTITEM);//得到内存大小
          IntPtr buffer = Marshal.AllocHGlobal(rawsize);//分配内存
          Marshal.StructureToPtr(_MSG_TB_CODSOFTITEM, buffer, true);//转换结构
          byte[] rawdatas = new byte[rawsize];
          Marshal.Copy(buffer, rawdatas, 
0, rawsize);//拷贝内存
          Marshal.FreeHGlobal(buffer); //释放内存
          return Encoding.GetEncoding(936).GetString(rawdatas);
        }
        
public  void Parse(string s)
        {
             Type anytype 
= typeof(MSG_TB_CODSOFTITEM);
             
byte[] rawdatas = Encoding.GetEncoding(936).GetBytes(s);
             
int rawsize = Marshal.SizeOf(anytype);
             
if (rawsize > rawdatas.Length)
                   _MSG_TB_CODSOFTITEM
= new MSG_TB_CODSOFTITEM();
             IntPtr buffer 
= Marshal.AllocHGlobal(rawsize);
             Marshal.Copy(rawdatas, 
0, buffer, rawsize);
             
object retobj = Marshal.PtrToStructure(buffer, anytype);
             Marshal.FreeHGlobal(buffer);
              _MSG_TB_CODSOFTITEM
=(MSG_TB_CODSOFTITEM)retobj;
        }
      }
//tb_codsoftitem
 }//ClassLibrary2

 

1501020.html?type=1

--------------------------
新闻: 鲍尔默:失败不可怕 贵在坚持
网站导航: 博客园首页   新闻   .NET频道   社区   博问   闪存   找找看

转载于:https://my.oschina.net/mysticboy/blog/859

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值