<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: IFeatureLayer.FeatureClass returning null in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465259#M12639</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;turns out it was a bad mxd causing the problem&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 25 Aug 2011 13:47:14 GMT</pubDate>
    <dc:creator>AlexanderGray</dc:creator>
    <dc:date>2011-08-25T13:47:14Z</dc:date>
    <item>
      <title>IFeatureLayer.FeatureClass returning null</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465243#M12623</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi everyone&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This might be a simple doubt. When opening a single .mxd, I can read correctly some properties of the layer, like Name and DataSourceType. When I try to access the FeatureClass, it always returns null. Checking the source inside ArcMap, the FeatureClass is there just as I want. So, why can't I read it programatically?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here's the relevant part of the code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
namespace WindowsApplication1
{
&amp;nbsp; public partial class Form1 : Form
&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp; private IMapDocument pMapDocument = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private IMap pMap = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private IEnumLayer pEnumLayer = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private IFeatureLayer pFeatureLayer = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private IDataLayer2 pDataLayer = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private IDatasetName pDatasetName = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private IWorkspace pWorkspace = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private IWorkspaceName pWorkspaceName = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private IUID pUID = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private string p = "password";

&amp;nbsp;&amp;nbsp;&amp;nbsp; public Form1()
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InitializeComponent();
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; private void Form1_Shown(object sender, EventArgs e)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Application.DoEvents();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Start("", true);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; private void Start(string sPath, bool inicializando)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bool saveInsideLayer = true;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string mxd;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPropertySet pConnectionProperties = new PropertySetClass();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (sPath == "")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; saveInsideLayer = false;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sPath = @"C:\layer.mxd";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pMapDocument = new MapDocumentClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (pMapDocument.get_IsPresent(sPath))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pMapDocument.Open(sPath, "");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; pMapDocument.MapCount; i++)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pMap = pMapDocument.get_Map(i);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pUID = new UIDClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pUID.Value = "{E156D7E5-22AF-11D3-9F99-00C04F6BC78E}"; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pEnumLayer = pMap.get_Layers((UID)pUID, true);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pEnumLayer.Reset();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pFeatureLayer = (IFeatureLayer)pEnumLayer.Next();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (pFeatureLayer != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (pFeatureLayer.DataSourceType.Contains("SDE"))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pDataLayer = (IDataLayer2)pFeatureLayer;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (pDataLayer.DataSourceName is IDatasetName)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pDatasetName = (IDatasetName)pDataLayer.DataSourceName;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pWorkspaceName = pDatasetName.WorkspaceName;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (pFeatureLayer.FeatureClass != null) // why never true?
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pConnectionProperties = pFeatureLayer.FeatureClass.ExtensionProperties; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pWorkspaceName.ConnectionProperties = pConnectionProperties;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pFeatureLayer = (IFeatureLayer)pEnumLayer.Next();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txtServidor.Text = pConnectionProperties.GetProperty("SERVER").ToString();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txtPorta.Text = pConnectionProperties.GetProperty("INSTANCE").ToString();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txtDatabase.Text = pConnectionProperties.GetProperty("DATABASE").ToString();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txtUsuario.Text = pConnectionProperties.GetProperty("USERNAME").ToString();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txtSenha.Text = pConnectionProperties.GetProperty("PASSWORD").ToString();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (saveInsideLayer)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pMapDocument.ReplaceContents((IMxdContents)pMap);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pMapDocument.Save();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pMapDocument.Close();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception ex)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new Exception("Unable to run the code", ex);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp; }
}
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm working in Visual Studio 2005, and using an ArcInfo license for 9.3 version.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for the attention&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Rodrigo Salvador&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Aug 2011 19:04:57 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465243#M12623</guid>
      <dc:creator>RodrigoSalvador</dc:creator>
      <dc:date>2011-08-18T19:04:57Z</dc:date>
    </item>
    <item>
      <title>Re: IFeatureLayer.FeatureClass returning null</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465244#M12624</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello Rodrigo:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I tested your code with 9.3.1 sp2 and I can get FeatureClass object successfully. I wonder have you tested on other data?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Chel&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Aug 2011 23:40:12 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465244#M12624</guid>
      <dc:creator>ChaoWang</dc:creator>
      <dc:date>2011-08-18T23:40:12Z</dc:date>
    </item>
    <item>
      <title>Re: IFeatureLayer.FeatureClass returning null</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465245#M12625</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;What kind of data source is in this layer that returns FeatureClass null?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Aug 2011 07:24:57 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465245#M12625</guid>
      <dc:creator>DubravkoAntonic</dc:creator>
      <dc:date>2011-08-19T07:24:57Z</dc:date>
    </item>
    <item>
      <title>Re: IFeatureLayer.FeatureClass returning null</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465246#M12626</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Dubravko e Chelsea, thank you both for the answers.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Chelsea, in this project I have 3 .mxd files, and I run the code trying to open all of them. In all cases, the FeatureClass returned null for all layers.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dubravko, I found the DataSourceType as "SDE Feature Class" inside the Source tab (Properties window) insde ArcMap. The line on the code, &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;if (pFeatureLayer.DataSourceType == "SDE Feature Class")&lt;/SPAN&gt;&lt;SPAN&gt;, works fine.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I wonder if the problem is in the first layer, which is a GroupLayer in all 3 .mxd. So I try to run not testing this top layer, but all others fails too. In examples I found in documentation, there is no treatment to this, the FeatureClass is callled just as I do in the code. Does it might be a configuration in Visual Studio? Just a guess...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks again. Your help is still needed.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Aug 2011 11:03:16 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465246#M12626</guid>
      <dc:creator>RodrigoSalvador</dc:creator>
      <dc:date>2011-08-19T11:03:16Z</dc:date>
    </item>
    <item>
      <title>Re: IFeatureLayer.FeatureClass returning null</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465247#M12627</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Try this example and we will go one step at time, this has to be simple problem.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://resources.esri.com/help/9.3/ArcGISDesktop/ArcObjects/esricarto/IMap_Layers.htm"&gt;http://resources.esri.com/help/9.3/ArcGISDesktop/ArcObjects/esricarto/IMap_Layers.htm&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;use UID for FeatureLayer.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And if you are trying to use IGroupLayer to find IFeatureLayer.FeatureClass you'll get exception before accesing FeatureClass because IFeatureLayer does not imeplement IGroupLayer&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Aug 2011 11:25:30 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465247#M12627</guid>
      <dc:creator>DubravkoAntonic</dc:creator>
      <dc:date>2011-08-19T11:25:30Z</dc:date>
    </item>
    <item>
      <title>Re: IFeatureLayer.FeatureClass returning null</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465248#M12628</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;If you open the mxd in ArcMap, are the layers broken (red exclamation mark?)&amp;nbsp; If not, are you running your code as different user than the one opening the mxds?&amp;nbsp; Can you call open on the IDatalayer.datasourcename object?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Aug 2011 11:27:30 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465248#M12628</guid>
      <dc:creator>AlexanderGray</dc:creator>
      <dc:date>2011-08-19T11:27:30Z</dc:date>
    </item>
    <item>
      <title>Re: IFeatureLayer.FeatureClass returning null</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465249#M12629</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Drubravko, thanks for the link. I'd change the GUID from IGeoFeatureLayer to IFeatureLayer, but it didn't make much difference. I asked the following test for all layers, whether GroupLayer or not, and all of them failed:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
if (pFeatureLayer.FeatureClass != null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show(pFeatureLayer.Name + " ok");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else MessageBox.Show(pFeatureLayer.Name + " fail");
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Alexander, you gave a great hint. My first goal here is to get the connection properties of the layer and write them down on a window (in which the user must change the properties as he/she wants). So, I do can open IDatalayer.DataSourceName (the property .NameString returns empty (""), but when I set it to an IDatasetName the .Name field is exactly the FeatureClass I want). Thus, the following code works:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
 pDataLayer = (IDataLayer2)pFeatureLayer;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (pDataLayer.DataSourceName is IDatasetName)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pDatasetName = (IDatasetName)pDataLayer.DataSourceName;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pWorkspaceName = pDatasetName.WorkspaceName;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pConnectionProperties = pWorkspaceName.ConnectionProperties;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So, with your help, I'm able to do what I want right now (hope I can change the properties successfully later). Therefore, the IFeatureLayer.FeatureClass still returning null, and I think it's interesting if we keep trying to find a solution for this.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Once again, thank you so much.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 20:38:56 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465249#M12629</guid>
      <dc:creator>RodrigoSalvador</dc:creator>
      <dc:date>2021-12-11T20:38:56Z</dc:date>
    </item>
    <item>
      <title>Re: IFeatureLayer.FeatureClass returning null</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465250#M12630</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;If the link is broken, then the featureclass will always be null.&amp;nbsp; If the purpose of the application is to display the layer connection properties and perhaps fix them, then you are on the right track.&amp;nbsp; You can use the Idatalayer2.Connect method to fix the layers.&amp;nbsp; Basically read the IName from the layer, display it, change it, make a new IName from the new properties and use the IName to reconnect using Idatalayer2.connect.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The trick is the IName contains the info you see in the layer source tab of the properties.&amp;nbsp; It is all the information you need to connect to data without actually making the connection (Open method does that.)&amp;nbsp;&amp;nbsp; That is available even when the layer is broken.&amp;nbsp; The FeatureClass property however is a direct link to the data in the database, it is not metadata, it is the actual data, so if the connection is broken, it is null.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Aug 2011 13:49:53 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465250#M12630</guid>
      <dc:creator>AlexanderGray</dc:creator>
      <dc:date>2011-08-19T13:49:53Z</dc:date>
    </item>
    <item>
      <title>Re: IFeatureLayer.FeatureClass returning null</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465251#M12631</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Sorry, Alexander, I forgot this information to you: the links are not broken (the red exclamation is not there), and that's why I can't figure out why the information is not loaded in IFeatureLayer. On the other side, you said another important thing: the FeatureClass property is a direct link. Maybe that's why this error is happening, I'm not making an explicit connection to the database inside the code. As I told, the information is avaiable in the map properties window, and it makes me think the .mxd connects to the database itself someway, and I need to do it programatically too to be able to get that information. Does it make sense?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;About the connections, my first shot to edit the properties follows:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pMapDocument.ReplaceContents((IMxdContents)pMap);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pMapDocument.Save(true, false); //are these arguments ok?
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pMapDocument.Close();
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I found it in some research, and I'm guessing it will be sufficient. If I can't see it working, I'll try your suggestion. In both cases, I'll post again in order to finish the topic.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Rodrigo Salvador&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 20:38:58 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465251#M12631</guid>
      <dc:creator>RodrigoSalvador</dc:creator>
      <dc:date>2021-12-11T20:38:58Z</dc:date>
    </item>
    <item>
      <title>Re: IFeatureLayer.FeatureClass returning null</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465252#M12632</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Ok, tests are done.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The code I've paste here failed while saving. So I changed it to Alexander's. And I'm getting a COM Exception on connecting or disconneting.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Does anyone know why? I remember there's something to do with Project Properties -&amp;gt; Build -&amp;gt; check Register for COM interop, but this CheckBox is disabled here.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Rodrigo Salvador&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Aug 2011 18:33:22 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465252#M12632</guid>
      <dc:creator>RodrigoSalvador</dc:creator>
      <dc:date>2011-08-19T18:33:22Z</dc:date>
    </item>
    <item>
      <title>Re: IFeatureLayer.FeatureClass returning null</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465253#M12633</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Strange...&amp;nbsp; The MapDocument help says:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;"Remarks&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;When opening or creating a map document with the IMapDocument Open() or New() methods, you should always make subsequent calls to IActiveView::Activate() in order to properly initialize the display of the PageLayout and Map objects.&amp;nbsp; Call Activate() once for the PageLayout and once for each Map you will be working with.&amp;nbsp; If your application has a user interface, you should call Activate() with the hWnd of the application's client area.&amp;nbsp; If your application runs in the background and has no windows, you can always get a valid hWnd from the GDI GetDesktopWindow() function, part of the Win32 API."&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Have you tried the activate method call?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Aug 2011 19:02:00 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465253#M12633</guid>
      <dc:creator>AlexanderGray</dc:creator>
      <dc:date>2011-08-19T19:02:00Z</dc:date>
    </item>
    <item>
      <title>Re: IFeatureLayer.FeatureClass returning null</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465254#M12634</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Alexander&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;To change the layer's properties, I think I don't need to open the ArcMap (at least, I'm not dealing with this option). So, the ActiveView is not necessary. Even way, I called Activate() for testing, and it makes no difference.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've found a code that updates the information without connecting. I don't have it here right now, sorry, but it's something like "pWorkspaceName.ConnectionPropperties = pPropSet" after setting the pPropSet properly. It runs fine, but the information inside the layer did not change. Aldo, that .Save(true,false) is crashing the application. I couldn't understand how to set the parameters here.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your time&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Rodrigo Salvador&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Aug 2011 21:56:50 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465254#M12634</guid>
      <dc:creator>RodrigoSalvador</dc:creator>
      <dc:date>2011-08-19T21:56:50Z</dc:date>
    </item>
    <item>
      <title>Re: IFeatureLayer.FeatureClass returning null</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465255#M12635</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I am getting similar behaviour on a 10.0 SP2 machine.&amp;nbsp; 10.0 SP1 seem to work ok...&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 24 Aug 2011 18:25:50 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465255#M12635</guid>
      <dc:creator>AlexanderGray</dc:creator>
      <dc:date>2011-08-24T18:25:50Z</dc:date>
    </item>
    <item>
      <title>Re: IFeatureLayer.FeatureClass returning null</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465256#M12636</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello Alexander&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Based on my application, I can only ask if you really need do use the IFeatureLayer.FeatureClass property. At this point, everything is going ok for me (reading the layer properties, changing and then saving), except for a DataSource connection (I am not able to open correctly the .mxd after saving, though the properties are correct. The spatial references are missing after saving). This means the null value in FeatureClass makes no difference for me at all.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I presume that's nothing wrong with your code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Sincerely&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Rodrigo Salvador&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 24 Aug 2011 19:13:52 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465256#M12636</guid>
      <dc:creator>RodrigoSalvador</dc:creator>
      <dc:date>2011-08-24T19:13:52Z</dc:date>
    </item>
    <item>
      <title>Re: IFeatureLayer.FeatureClass returning null</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465257#M12637</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I need to access the workspace name.&amp;nbsp; That is returning null too but not on my development machine and only when it is called from a form, if I call it from a command it works ok...&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Aug 2011 11:37:57 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465257#M12637</guid>
      <dc:creator>AlexanderGray</dc:creator>
      <dc:date>2011-08-25T11:37:57Z</dc:date>
    </item>
    <item>
      <title>Re: IFeatureLayer.FeatureClass returning null</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465258#M12638</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Alexander,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I had some troubles with IWorkspaceName.PathName too. It was loading a path that doesn't exist on my machine, but on the developer's. I solved that using IWorkspaceName. Did you try it?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Rodrigo Salvador&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Aug 2011 12:21:15 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465258#M12638</guid>
      <dc:creator>RodrigoSalvador</dc:creator>
      <dc:date>2011-08-25T12:21:15Z</dc:date>
    </item>
    <item>
      <title>Re: IFeatureLayer.FeatureClass returning null</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465259#M12639</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;turns out it was a bad mxd causing the problem&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Aug 2011 13:47:14 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/ifeaturelayer-featureclass-returning-null/m-p/465259#M12639</guid>
      <dc:creator>AlexanderGray</dc:creator>
      <dc:date>2011-08-25T13:47:14Z</dc:date>
    </item>
  </channel>
</rss>

