C#中嵌入互操作類型的含義


首先說一下它的含義:

1. ”嵌入互操作類型”中的嵌入就是引進、導入的意思,類似於c#中using,c中include的作用,目的是告訴編譯器是否要把互操作類型引入。

2. “互操作類型”實際是指一系列Com組件的程序集,是公共運行庫中庫文件,類似於編譯好的類,接口等。

3. “嵌入互操作類型”設定為true,實際上就是不引入互操作集(編譯時候放棄Com程序集),僅編譯用戶代碼的程序集。而設定為false的話,實際就是需要從互操作程序集中獲取 COM 類型的類型信息。

 

它的設置方法是:

  

 

問題:

如下圖所示,有些時候互操作類型,在調試時的監視窗口中,就無法查看其變量,並不能顯示出其值,據猜測可能是在程序代碼中,並沒有對其進行引用。

所以可能需要如果查看某個互操作類型的具體值時,需要再代碼中先引用這個值,如下chart_group所示。

            HWLPL_ChartInfo HWLPL_Data;
            Excel.ChartObjects hwlpl_charts;
            Excel.ChartObject chart_obj;
            Excel.Chart tmp_chart;
            int nchart_totall;
            Excel.ChartGroup chart_group;
            Excel.Series tmp_series;
 
            // get the chart data
            using (ExcelOperate_Tmp xlsHandle = new ExcelOperate_Tmp(strFilePath, false))
            {
                xlsHandle.OpenOrCreate();
 
                Excel.Worksheet sheet = xlsHandle.GetWorksheet(2);  //"表"
                hwlpl_charts = (Excel.ChartObjects)sheet.ChartObjects(Type.Missing);
                nchart_totall = hwlpl_charts.Count;
                chart_obj =  hwlpl_charts.Item(1);
                
                tmp_chart = chart_obj.Chart;
                //table = tmp_chart.SeriesCollection(Type.Missing);
                chart_group = (Excel.ChartGroup)tmp_chart.ChartGroups(1);
                tmp_series = (Excel.Series)chart_group.SeriesCollection(1);
 
                chart_group = (Excel.ChartGroup)tmp_chart.ChartGroups(0);
           }

 

 

至於是不是這個原因,需要大家去探索一下。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM